MQ(message queue)
,从字面意思上看,本质是个队列,FIFO
先入先出,只不过队列中存放的内容是message
而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。1.流量消峰
2.应用解耦
3.异步处理
callback api
,B 执行完之后调用 api 通知 A 服务。这两种方式都不是很优雅,使用消息总线,可以很方便解决这个问题,A 调用 B 服务后,只需要监听 B 处理完成的消息,当 B 处理完成后,会发送一条消息给 MQ,MQ 会将此消息转发给 A 服务。这样 A 服务既不用循环调用 B 的查询 api,也不用提供 callback api。同样 B 服务也不用做这些操作。A 服务还能及时的得到异步处理成功的消息。
1.ActiveMQ
2.Kafka
LinkedIn,Uber, Twitter, Netflix
等大公司所采纳。3.RocketMQ
4.RabbitMQ
1.Kafka
2.RocketMQ
3.RabbitMQ