消息中间件介绍以及常见消息中间件对比

一、为什么要使用消息队列

1. 解耦及异步

使用消息队列可以将同步调用变为异步调用,同时降低系统模块之间的耦合度

解耦

2. 削峰

当系统压力过大时,将操作缓存在消息队列中,后面不断读取消息进行操作,达到削峰的目的

削峰

3. 复用(可拓展性)

如果系统A要发送消息给多个系统,此时每增加一个子系统,系统A的代码就需要修改,使用消息队列之后,系统A将消息发送到消息队列,其他系统读取消息即可。新增系统时只需到消息队列和宗读取消息即可

复用

二、需要注意事项

1. 注意提高可用性

当MQ服务器宕机时,备用方案。

2. 系统复杂度提高

  1. 消息重复消费问题
  2. 消息丢失问题
  3. 消息传递顺序问题

3. 一致性问题

当多系统处理同一条消息时,同步调用可直接返回失败,使用消息队列的异步调用该如何处理

三、 常见消息中间件对比

ActiveMQ RabbitMQ RocketMQ Kafka
实现语言 java erlang java scala
吞吐量 万级 万级 十万级 十万级
时效 ms 微秒 ms ms
可用性 高(主从) 高(主从) 非常高(分布式) 非常高(分布式)
发布了17 篇原创文章 · 获赞 1 · 访问量 651

猜你喜欢

转载自blog.csdn.net/c_c_y_CC/article/details/102509615