网站前端开发语言,安丘网站建设公司,辽宁住房和建设厅网站,wordpress 当前位置 页面消息队列 优缺点 特点 解耦异步削峰缺点 系统可用性降低 兜底:代码中try、catch 异常捕捉后直接进行数据库操作,或者 搭建高可用集群,Kafka集群、RocketMQ集群提高复杂度 消息重复(消费端的幂等性设计)、消息丢失(主要集中RabbitMQ)、消息的顺序(业务:1,下单 2,支付 3,发…消息队列
 
-  
- 优缺点 
- 特点 
 - 缺点 
- 系统可用性降低 
- 兜底:代码中try、catch 异常捕捉后直接进行数据库操作,或者 搭建高可用集群,Kafka集群、RocketMQ集群
 
 - 提高复杂度 
- 消息重复(消费端的幂等性设计)、消息丢失(主要集中RabbitMQ)、消息的顺序(业务:1,下单 2,支付 3,发送物流 4,通知)
 
 - 一致性问题 
- a,b,c三个系统,a、b两个写入数据库成功了,c系统写库失败?使用分布式事务来控制。RocketMQ提供了,其他的seta方式
 
 
 - 特点 
 - 缺点 
- 系统可用性降低 
- 兜底:代码中try、catch 异常捕捉后直接进行数据库操作,或者 搭建高可用集群,Kafka集群、RocketMQ集群
 
 - 提高复杂度 
- 消息重复(消费端的幂等性设计)、消息丢失(主要集中RabbitMQ)、消息的顺序(业务:1,下单 2,支付 3,发送物流 4,通知)
 
 - 一致性问题 
- a,b,c三个系统,a、b两个写入数据库成功了,c系统写库失败?使用分布式事务来控制。RocketMQ提供了,其他的seta方式
 
 
 
 - RabbitMQ、Kafka、RocketMQ 对比 
- 性能角度 
- RabbitMQ 1.2w
 - Kafka 100w
 - Rocket MQ 10w
 
 - 集群扩展支持 
- Rabbit MQ集群很弱(确保高可用 不能扩展性能)
 - Kafka 天生分布式,支持动态扩展
 - Rocket MQ 天生分布式,支持动态扩展
 
 - 功能 
- Rabbit MQ比较丰富(死信消息、延迟消息)
 - Kafka比较弱
 - Rocket MQ比较丰富(死信、延迟、消息回溯、消息过滤)
 
 
 - 常见问题及解决方案 
- 重复消费 
- 死信消息
 - MVCC(多版本控制) 
 - 去重表(MySQL、Redis) 
- 表上构建唯一性索引
 - try{处理业务:插入数据/判断是否存在}catch(exception e){return