java总结 -- 8.kafka和rabbitmq可靠性保证及比对

一、.rabbitmq

图片源自网络

 生产者:confirm机制

exchange,queue,message:持久化

消费者:ack机制,推荐手动确认、幂等消费

二、kafka

生产者:ack机制 0 1 -1(all) ,isr集合(In-Sync Replicas),根据设置的副本落后leader副本的消息的时间间隔或者消息数量(0.9.0.0之后移除)两个维度,来动态调整isr集合中的数据。

broker:日志分区partition,副本数最少3个,写入最小副本数大于1.

图片源自网络

消费者:commit提交位移,推荐手动提交,幂等消费

三、二者区别

架构模型方面:

1.rabbitmq是amqp协议的实现,erlang语言开发,支持分布式,有broker,exchange,binding,queue等组成,rabbitmq以broker为中心,有消息确认机制。

2.kafka遵从一般的mq结构,有生产者,broker,消费者,以消费者为中心,无消息确认机制。

吞吐量方面:

1.kafka具有高的吞吐量,内部采用消息的批量处理,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的时间复杂度,消息处理的效率高,秒杀操作、日志同步;

2.rabbitmq支持对消息的事物,订单+库存操作,注册+短信操作,可靠传递,不支持批量操作;基于存储的可靠性要求可以采用磁盘和内存

可用性方面:

1.kafka broker支持主备

2.rabbitmq集群,镜像模式

负载均衡方面:

1.kafka采用zookeeper对集群中的broker和consumer进行管理,可以注册topic到zookeeper上,通过zookpeer的协调机制,实现语义指定分片。

2.rabbitmq需要额外的loadbanlancer进行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值