赞
踩
推荐大家可以去看看,一定有你需要的:>>>传送门<<<
消息队列已经逐渐成为企业IT系统内部通信的核心手段,主要用来提升性能、系统解耦、流量消峰。 它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。
这里对比下RocketMQ和RabbitMQ,并总结常见问题的解决方式。
1.1 特性
RocketMQ:
RabbitMQ:
1.2 重复消费
正常情况下,消费者在消费消息的时候,消费完毕后,会发送一个确认消息给消息队列,消息队列就知道该消息被消费了,就会将该消息从消息队列中删除; 但是因为网络传输等等故障,确认信息没有传送到消息队列,导致消息队列不知道自己已经消费过该消息了,再次将消息分发给其他的消费者。
保证消息的唯一性,就算是多次传输,不要让消息的多次消费带来影响;保证消息等幂性;
1.3 丢失数据
RocketMQ:
RabbitMQ:
1.4 消费顺序
主要思路有两种:1、单线程消费来保证消息的顺序性;2、对消息进行编号,消费者处理时根据编号判断顺序。
每个queue的数据本身就是有序的,只要消费者这边有序消费,那么可以保证数据被顺序消费。如果是多线程消费,就要consumer内部用内存队列做排队。
1.5 高可用
RocketMQ:
RabbitMQ:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。