常用的消息中间件(ActiveMQ、RabbitMQ、RocketMQ、Kafka)面试精华

目录

主要作用:

四种消息中间件:

主要作用:

  • 解耦
  1. 多个系统调用主系统可选择是否订阅
  • 异步
  1. 主系统可提高响应时间
  • 削峰
  1. 通过消息队列减轻消息访问对服务器的压力

四种消息中间件:

ActiveMQ

  1. 万级吞吐量

RabbitMQ(中小型公司)

  1. 万级吞吐量

RocketMQ(中大型公司)(非分布式)

  1. 十万级

  2. Topic主题分类更加细致 有Tag分级

  3. 高可用:镜像集群模式

  4. 怎么做:开启镜像集群策略,可指定同步数据节点数量是所有还是个别几个

Kafka(纯分布式的mq)

  1. 十万级

  2. 高可用:假设一个topic有三个partition,在topic中写三条消息,每条消息存在不同的partition中,每个partition有自己的副本,选出leader和follower,leader宕机后,在follower中选出leader

  3. 只能leader读写,保证一致性,减轻复杂度

  4. leader读取数据后,follower从leader拉取数据,响应ack告诉leader

  5. 生产者给kafka发送消息都有一个offset 在kafka中是有序的,消费者也是按照顺序消费的,消费者按顺序消费到哪个offset,zookeeper有记录,kafka可以从zookeeper中读取消费到那个位置了

  6. 由于消费者重启,kafka无法感知消费者消标记的offset,kafka会重复发已经发过的消息,导致消费者会重复消费 需要要保证幂等性

解决办法:

每条消息设置id存入Redis

数据库主键唯一性

相关推荐
浪前43 分钟前
【项目篇之消息序列化】仿照RabbitMQ模拟实现消息队列
分布式·rabbitmq
smileNicky4 小时前
RabbitMQ Linux 安装教程详解
linux·分布式·rabbitmq
计算机毕设定制辅导-无忧学长4 小时前
ActiveMQ 可靠性保障:消息确认与重发机制(一)
java·activemq·java-activemq
计算机毕设定制辅导-无忧学长1 天前
Spring Boot 集成 ActiveMQ 实现异步消息通信(二)
spring boot·activemq·java-activemq
方二华2 天前
分布式队列对消息语义的处理
分布式·kafka·rocketmq
智汇优库2 天前
Rabbitmq下载和安装(Windows系统,百度网盘)
windows·分布式·rabbitmq
计算机毕设定制辅导-无忧学长2 天前
Spring Boot 集成 ActiveMQ 实现异步消息通信(一)
spring boot·activemq·java-activemq
落霞的思绪2 天前
Springboot集成SSE实现消息推送+RabbitMQ解决集群环境下SSE通道跨节点事件推送问题
spring boot·rabbitmq·sse
smileNicky2 天前
RabbitMQ 启动报错 “crypto.app“ 的解决方法
分布式·rabbitmq·ruby
计算机毕设定制辅导-无忧学长3 天前
Spring 与 ActiveMQ 的深度集成实践(二)
spring·activemq·java-activemq