什么值得买 网站开发,域名有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.2wKafka 100wRocket MQ 10w集群扩展支持 Rabbit MQ集群很弱(确保高可用 不能扩展性能)Kafka 天生分布式,支持动态扩展Rocket MQ 天生分布式,支持动态扩展功能 Rabbit MQ比较丰富(死信消息、延迟消息)Kafka比较弱Rocket MQ比较丰富(死信、延迟、消息回溯、消息过滤)常见问题及解决方案 重复消费 死信消息MVCC(多版本控制) 对整体业务改动较大,使用很不便利,代价较高去重表(MySQL、Redis) 表上构建唯一性索引try{处理业务:插入数据/判断是否存在}catch(exception e){return