1.性能
a.
降低平均响应时间,提高总体吞量。
这是因为异步通信时,一个系统向另一个系统发出请求后不必等待对方返回即可继续干自己的事。详细的推导可见
http://www.cnblogs.com/chenjianjx/archive/2012/03/27/2420262.html
(待续)
2.高可用
a.
单个系统的故障不会立即导致另一个系统的某些功能不可用
同步通信时,如果Provider当机,则Consumer的调用就会立即失败,既而造成Consumer系统中的某些功能不可用;换成异步通信时,如果Provider不可用,Consumer不受影响,因为Consumer只是把消息丢进了消息队列,并没有跟Provider直接交互。 消息队列一般有消息持久化的功能,当Provider恢复时,会收到队列发过来的消息。
当然,如果Provider一直当机,Consumer发出的请求一直得不到处理,Consumer本身的功能可能终究也会出问题,并最终导致不可用。 具体情况取决于具体的业务逻辑。
(待续)
3.软件发布
a.
Provider发布重启时,Consumer在短期内不受影响
原因与上面的2.a相同。这里
(待续)