消息中间件---kafka

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节点,那么在选举过程当中,所有的节点都挂起,不能够访问,在选举阶段,数据存在丢失.

posted @ 2020-04-10 16:44  lqq930819  阅读(303)  评论(0)    收藏  举报