1.消息队列的作用:解耦,异步,削峰填谷。
2.如何保证消息队列正确消费:生产端不多生产,消费端不多消费。生产端需要实现幂等性,消费端需要有确认机制,rabbitmq的/confirm/i机制,kafka的ack机制。
3消息不被重复消费:保证不了,mq解决不了,pull或push模式,通过程序自己保证
4.消息队列的优点:同1。缺点:增加了系统的复杂度,幂等,重复消费,消息丢失等问题,系统的可用性降低,一致性,消费端可能消费失败。场景:日志采集,发布订阅等。日志采集的准确性要求不是很高。
5.死信队列:消费失败的,经过重试
6.延迟队列:经过一定的延迟之后被消费,10分钟内没有支付,就取消
7.kafka:rebalance 机制:读写会进入阻塞。增加或者减少消费者端,topic个数增减,topic分区数量变化,consumer消费超时(可以设置阈值)。
coordinator:协调者:partition的leader节点,就是协调者。



