RabbitMq与Kafka集群设计比较

来源:互联网 发布:图书数据哪里最多 编辑:程序博客网 时间:2024/04/29 19:08

1.RabbitMq集群


2.Kafka基础

2.1基础概念

Producer:消息生产者,负责发布消息到 Kafka broker
Consumer:消息消费者,向 Kafka broker 读取消息
Broker:Kafka 集群包含一个或多个服务器,这种服务器被称为 broker。一个broker上可能有很多topic的partition。
Topic:每条发布到 Kafka 集群的消息都有一个类别,这个类别被称为 Topic。一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。
Partition:分区,每个 Topic 包含一个或多个 Partition。

2.2架构图



2.3 kafka设计:

1.消费者:客户端从broker拉的策略,支持批量拉和压缩,由消费者在zk记录消息offset

2.生产者:A 异步发送,支持累积数据量64k或者10毫秒;B 负载均衡,消费者发送的消息分发到不同的broker上

2.broker:把文件系统作为存储系统,顺序写入磁盘,zero-copy方式文件传输

3.备份:如果topic设置了replication,那意味着每个Partition都会有2个备份,对外提供服务的只有leader,follwer只是备份leader的数据;leader和follwer之间通过副本来选出leader,如果follwer跟不上leader就会被提出副本,如果leader不在,就会在副本中选取一个做为leader,如果所有的备份都down了,则选择最近down掉的一个备份作为leader




更多精彩内容请继续关注我的博客http://blog.csdn.NET/caicongyang

记录与分享,你我共成长 -from caicongyang






1 0