1.高可用:RabbitMQ的高可用指的是镜像模式的集群,queue的元数据和消息数据都存在每个节点上,不是分布式的(中小公司推荐,qps万级)
2.(重复消息)幂等:不管生产者发送几条相同的消息到mq,消费者消费的时候,只消费一条,实现思路1.例如写库,订单表,生产者生产消息的时候在消息体中加入一个唯一标识(一个字段或者多个字段组合),这样在消费者消费的时候,首先去从库中查看是否有这个标识的数据,如果有的话,直接丢掉就行。
3.消息丢失:分为三个部分,分别为
3.1:生产者消息是否发送到mq服务器中,采用异步confirm机制;
3.2:mq服务器打开queue持久化设置,生产者发送的消息进行持久化设置deliverMode=2(有一种情况发生的概率很小,就是mq服务器接收到消息后,还没有来得及进行磁盘持久化,就挂了)
3.3:消费者关闭自动ack机制。不然消费者刚监听到消息,还没来得及处理就已经给mq返回ack消息了,这时候消费者挂了,消息就丢失了
4.如果保证顺序消费:生产者发送多条消息到一个特定的queue中,消费者去消费这一个特定的queue中就可以保证顺序。