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