消息队列
使用消息队列的好处
通过异步处理提高系统性能(削峰,减少响应时间,分担数据库压力)
降低系统耦合性
使用消息队列带来的问题
系统可用性降低:需要考虑消息丢失,mq挂掉的情况。
系统复杂度提高:需要保证消息没有重复消费,处理消息丢失,保证消息传递的顺序性。
一致性问题:异步消息没有被正确消费,导致数据不一致。
rocketmq负载均衡策略
平均分配策略(默认):将queue平均分给consumer来处理
环形分配策略
一致性hash分配策略
机房分配策略
rocketmq消费模式
集群模式:多个consumer只会发给一个去消费
广播模式:发给多个consumer消费
rocketmq消息重试机制
会保证消息至少一次被消费,不保证消息不重复,所以需要在业务端进行幂等处理。