1、目标:考虑使用一个工具以前,必定要深入理解本身的目标是什么,要解决的问题是什么,是否有业务意义,或者商业价值。没目标作事就是瞎掰,没目标或者也是瞎掰。 java
2、场景之一:日志。偶尔会用到复杂的日志系统,日志要写不少地方,时间被拉长 安全
3、场景之二:复杂的业务,可是能够并行。本人使用过的场景就是抓数据--》分析,数据抓取后,进行多角度的分析是能够并行的。 服务器
4、场景之三:某些技术场景。如咱们公司的系统多系统对接,常常互发消息,发消息的前提就是对方系统是活着的,俗说的握手,偶尔系统故障,或者跨区域延迟高--------耗时。因此非实时应答需求也使用异步交互。 架构
5、有保障的异步:disruptor。速度效率极快,适用要求严格步骤的异步。它的异步能够像一个树形结构同样执行程序,父子节点有前后顺序,同级节点能够并行,而且多个子节点能够收敛到一个孙子节点,孙子节点能够等全部父节点执行完毕再执行。 它是起于一个银行系统。 异步
6、无保障的异步:akka是个表明做。消息发完就无论了,甚至在发消息同时你关闭系统都无所谓,它不作任何保障承诺,因此用于非严格数据安全场景。 工具
7、一般咱们用于标准的符合java JMS标准的消息服务器是也能够认为是异步的。它们通常能够无保障和有保障的发送消息,经过设定不一样的参数。如activemq等。 性能
8、异步是一个系统发展趋势。性能是考虑的一方面,更重要的是从架构上来说它分离关注点,不只编码能够分离,甚至将来有可能发展出专有硬件来支撑软件。 编码