MQ(Message Queue)消息队列
MQ:是一种应用程序对应用程序传递消息的中间件,是通过读写出入队列来通信。
三种通讯模式 1.点对点,2.多点广播,3.发布和订阅(一般用这个)
优点:
1.异步:执行失败重试,提高接口的性能(失效策略;数据回补)
2.解耦:利用MQ降低系统的耦合性(系统重构)
3.削峰:将一些无需及时返回且耗时的操作提取出来,进行异步处理,从而节省服务器的响应时间来提高系统的吞吐量(秒杀,公司的活动:抢金币)
缺点:
1.MQ一旦挂了,整个系统就奔溃了(高可用)
2.系统的复杂度提高(消息堆积)
3.数据不一致(消息重复,消息顺序,消息丢了)
如何选型:RabbitMQ,RocketMQ,Kafka
Kafka是主要用于配合大数据类的系统来进行实时数据计算、日志采集等场景(主要支持简单的MQ功能)
我们一般在RabbitMQ和RocketMQ中间来选