MQ的种类:
- Kafka
- RabbitMQ
- RocketMQ
- ActiveMQ
微服务中系统直接调用存在的问题,需要引入MQ的原因:
- 系统之间接口耦合严重;
- 大流量并发时,容易被冲垮;
- 等待同步调用存在性能问题;
MQ能做什么
- 解耦
- 削峰
- 异步
MQ的技术维度:
- 发送和接收消息API
- MQ的高可用性
- MQ的集群和容错配置
- MQ的持久化
- 延时发送和定时投递
- 签收机制
- Spring整合
- 编程语言:Java
- Kafka:Java、Scala
- RabbitMQ:erlang
- RocketMQ:Java
面向消息的中间件(messae-oriented middleware)MOM定义:
是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等功能。
大致过程:
发送者把消息发送给消息服务器,消息服务器将消息存放在若干队列/主题中,在合适的时候,消息服务器会将消息转发给接受者。在这个过程中,发送和接收是异步的,也就是发送无需等待,而且发送者和接受者的生命周期也没有必然关系;尤其在发布pub/订阅sub模式下,也可以完成一对多的通信,既让一个消息有多个接收者。
来源:https://www.cnblogs.com/huangwenjie/p/12251023.html