首页 > 其他 > 详细

消息中间件---kafka

时间:2020-04-10 17:35:33      阅读:102      评论:0      收藏:0      [点我收藏+]

1.实现原理:kafka依赖于zk(zookeeper),将所有的kafka服务器注册到zk服务器上,并建立长连接(zk保存着kafka的broker节点信息)

2.核心组件:broker、topic、partition(分区)、producer、consumer以及message

broker:就是一台kafka节点

topic:消息主题,包含了多个partition;每一个消息都会表示成一个递增的序号,存在在partition中

partition:由一个一个的消息组成;

producer:生产者;

consumer:消费者

3.发送过程以及消费过程

1)发送过程:选择一个topic发送消息(send(tipoc、key、value));底层是通过计算key以及value的序列化值,找到相应的partition,将消息保存在partition的末尾;

2)消费过程:监听一个topic主题,通过id(offsert--偏移量)指定消息消费的地址,然后consumer会保存当前的id消息-作为下次消费的id起点...

4.Broker:(相当于一个kafka节点)

技术分享图片

 

 

 

5.优点:

1) 消费者可以根据需求灵活的指定offset(id);

2)保证消息的不变性,依赖于每个consumer的offset(每个consumer的offset互不影响)保证了线程的安全;

3)高可用,消息以partition为一个单元体,分配到多个server当中,并以partition进行备份。

6.缺点:(kafka依赖于zk,故需要考虑到zk的缺点)

由于zk是中心化的节点,包含leader与follower节点,那么在选举过程当中,所有的节点都挂起,不能够访问,在选举阶段,数据存在丢失.

消息中间件---kafka

原文:https://www.cnblogs.com/lq-93/p/12674444.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!