1 / 4
文档名称:

几种消息服务产品比较.docx

格式:docx   大小:22KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

几种消息服务产品比较.docx

上传人:xunlai783 2017/12/22 文件大小:22 KB

下载得到文件列表

几种消息服务产品比较.docx

相关文档

文档介绍

文档介绍:几种消息服务产品比较
IMB MQ
ActiveMq
RabbitMq
Kafka
producer容错,是否会丢数据
有ack模型,,实现可靠的数据传输。采用成熟的数据库技术,实现两阶段事务提交机制,保证消息不被丢失或者重新复制。
有ack模型,也有事务模型,保证至少不会丢数据。ack模型可能会有重复消息,事务模型则保证完全一致
批量形式下,可能会丢数据。非批量形式下, 1. 使用同步模式,可能会有重复数据。 2. 异步模式,则可能会丢数据。(当Producer向Leader发送数据时,可以通过acks参数设置数据可靠性的级别
: 不论写入是否成功,server不需要给Producer发送Response,如果发生异常,server会终止连接,触发Producer更新meta数据;
: Leader写入成功后即发送Response,此种情况如果Leader fail,会丢失数据
3.-1: 等待所有ISR接收到消息后再给Producer发送Response,这是最强保证,仅设置acks=-1也不能保证数据不丢失,当Isr列表中只有Leader时,同样有可能造成数据丢失。要保证数据不丢除了设置acks=-1, 还要保证ISR的大小大于等于2,具体参数设置:
:设置为-1 等待所有ISR列表中的Replica接收到消息后采算写成功;
: 设置为大于等于2,保证ISR中至少有两个Replica
Producer要在吞吐率和数据可靠性之间做一个权衡)
consumer容错,是否会丢数据
有ack模型,,实现可靠的数据传输。采用成熟的数据库技术,实现两阶段事务提交机制,保证消息不被丢失或者重新复制
有ack模型,数据不会丢,但可能会重复处理数据。
批量形式下,可能会丢数据。非批量形式下,可能会重复处理数据。(ZK写offset是异步的)(一致性定义:若某条消息对Consumer可见,那么即使Leader宕机了,在新Leader上数据依然可以被读到
: Partition的高水位,取一个partition对应的ISR中最小的LEO作为HW,消费者最多只能消费到HW所在的位置,另外每个replica都有highWatermark,leader和follower各自负责更新自己的highWatermark状态,highWatermark <= leader. LogEndOffset
,Consumer不能立刻消费,Leader会等待该消息被所有ISR中的replica同步后,更新HW,此时该消息才能被Consumer消费,即Consumer最多只能消费到HW位置,这样就保证了如果Leader Broker失效,该消息仍然可以从新选举的Leader中获取。对于来自内部Broker的读取请求,没有HW的限制。同时,Follower也会维护一份自己的HW, = min(, ))
架构模型
队列管理器(QueueManager)、