消息中间件的常见问题

本文探讨了消息中间件的作用,如系统解耦与异步调用,并介绍了Kafka和RabbitMQ。讲解了Kafka的offset机制、rebalance原理以及Zookeeper的角色。同时阐述了RabbitMQ的架构设计,包括Exchange、Queue和Binding,并讨论了其事务消息、消息确认和死信队列的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是消息中间件?
是利用高效可靠的消息传递机制进行异步的数据传输,并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机制,可以在分布式环境下扩展进程间的通信。

2、为什么要使用消息中间件?

系统解耦:
使用消息队列来作为两个系统的通讯方式。两个系统不需要相互依赖,实现解耦。
请添加图片描述
异步调用:
系统C给消息队列发送消息后,可以非阻塞执行其他任务。
请添加图片描述
流量削峰:
高峰期积压一些请求在MQ里,然后高峰期过了,由消费者自己控制消费速度,在一定时间内消费完毕.
请添加图片描述
3、消息中间件有哪些传递模式?

消息中间件一般有两种传递模式:
点对点模式:
一对一,消息生产者将消息发送到消息队列中,消息消费者从队列中接收消息。消息可以在消息队列中进行异步传输。

发布/订阅模式:
一对多,通过一个内容节点(主题topic)来发布和订阅消息,消息发布者将消息发布到某个主题,消息订阅者订阅这个主题的消息。消息的发布与订阅相互独立。

4、如何保证消息不被重复消费?
Kafka内部:在每个 MQ 写入队列时,会给这条数据分配一个序号 offset,消费者在消费数据时,会把消费过的 offset序号 提交,下次从大于提交序号的最小数据开始消费。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值