Kafka 简介

来源:互联网 发布:软件解决方案团队 编辑:程序博客网 时间:2024/04/20 08:26

Kafka作用:

1. 分布式流计算平台

2. 类似于消息系统发布订阅数据流

3. 以分布式、副本集群方式存储数据

4. 实时处理数据流

5. 构建实时数据流管道,水平可伸缩、容错、速度快

 

特点:

1. 巨量数据,TB级

2. 高吞吐量  支持每秒百万消息

3. 分布式  支持在多个server之间进行消息分区

4. 多语言客户端支持  

 

技术特点:

1. 消息缓存与FileSystem的存储,数据被即刻写入OS内核页,并缓存以及清理磁盘(可配置)

2. 消息被消费后,Kafka长时间驻留消息,如有必要可以重复消费。

3. 对分组消息使用消息Set,防止网络过载。

4. 使用消费者维护消费状态

5. 消费者状态(进程死活)默认存在Zookeeper中,也可存在于其它OLTP中

6. Kafka中的生产和消费是Pull-Push模式。

7. Kafka没有主从模式,所有broker地位相同。broker元数据均在zk中维护,并在producer和consumer之间共享。

8. Kafka的LB(load balance)策略可使producer动态发现broker。

9. Producer维护了broker的连接池,并能够通过zk的watcher call机制实时进行更新

10. Producer可以选择同步或异步方式向broker发送消息。



 
 
 

 

Kafka 副本机制:

1. 每个分区存放n个副本,可承受n-1个节点失效。

2. 这n个副本中有一个是leader,它同时维护者所有副本的同步状态。

3. 如果leader失效,会通知producer,然后producer将消息重新发送给新的leader。

4. 选择新leader的方法是:所有follower在zookeeper中注册自己,最先注册的是leader,其它是follower。

5. Kafka支持的副本机制有:

同步机制: producer从zookeeper中找到leader,向leader发送消息,消息写入leader本地log。follower从leader中pull消息,每个follower将消息写入本地log,向leader发送确认回执。leader收到follower的确认回执后再想producer发送确认回执。 在consumer端,所有的消息是从leader中pull的。

异步机制:与同步机制不同的是一旦leader向log写入message完成就会向producer发送确认回执。所以这种机制不保证向失效的follower写入成功。

 

 

严重推荐:

http://www.jasongj.com/tags/Kafka/  kafka系列文章

  • 大小: 45.3 KB
  • 大小: 124.5 KB
  • 大小: 10.5 KB
  • 查看图片附件