介绍对比:

Kafka:topic不能太多,一个缺点,影响Kafka的吞吐量

集群搭建:【单个也是一个集群(特殊)】

集群搭建:https://blog.csdn.net/p393975269/article/details/129830252

1:默认的普通集群模式:各个节点有元数据:交换机和队列,木有消息数据进行同步
2:镜像模式:镜像节点主动进行消息同步

工作介绍:

模式介绍:https://blog.csdn.net/w20001118/article/details/128145159

常见问题:

RabbitMQ保证消息不丢失

1:生产者保证消息正确发送到RibbitMQ中

可以使用生产者确认机制,经过多次确认保证生产者的消息能够发送到RabbitMQ中,确认机制分为同步确认和异步确认 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f6ba9e11701d41b0a44bd83ad3b7739f.png)

2:主从消息不同丢失消息

使用镜像集群模式 或者 启用Federation联邦机制,给包含重要消息建立i一个远端备份

3:消费者不丢失消息

一般消费者会进行重试,有可能会出现一直重复消费问题,将应答模式设置为手动应答可以提高消息消费的可靠性

4:消息存盘不丢失消息

classic经典队列选择进行持久化,新增的Quorum队列和Stream队列都有明显的持久化机制,能更好的保证服务端消息不丢失

如何保证幂等性问题

1:设置重试的次数,不能叫他一直进行重试操作
2:在业务中给每一个消息唯一标识 等等,还有其他方式,看面试宝典

保证消息的顺序行问题

1:只用一个队列,但是性能较差 具体看交换机和队列配置,目前rabbitmq木有好的办法

关于消息堆积问题:看面经