[kafka] kafka的理解

技术文章 1年前 (2020) 完美者
2,035 0

标签:control   lead   原因   队列   状态   offset   核心模块   cal   apache。   

1.kafka是一个分布式的消息队列,缓存系统,消息的发布和订阅系统。
2.始于Linkedin公司,开源于apache。
3.包含生产者,消费者,broker。
4.每秒支持百万消息处理。
5.支持多个生成者,多个消费者,多个broker
6.生成者产生数据,按topic分类数据,对数据进行分区,数据以批的形式,发送给broker。
7.broker在zooker上注册,第一个注册成功的broker成为controler,负责选举多副本数据的leader,剩下的副本成为follower。
8.通常borker的数量要大于分区的数量,这样可以保证数据分布均匀,避免数据倾斜。
9.数据在broker中,同时以多分区和多副本的形式存在。一个broker挂掉,会选出数据最新的borker为新的leader。
10.leader节点复制接受生成者的请求和消费者的请求,其余的副本可以异步进行数据的同步。
11.消费者包含在消费者组中,一个消费者组内同时一个分区只能同时对应一个消费者,所以可能会产生处于空闲状态的消费者。
12.消费者按照队列的形式取数,取完后把偏移量offset记录在zookeeper中,下次再取数据的时候会接着上次的位置继续取数。
13.偏移量offset存在zookeeper中,即使消费者因为硬件,网络,操作系统等原因导致失效的时候,能够保证恢复后继续取到上次的数据位置。
14.kafka解耦了数据的生成者和消费者,同时支持按需求增加broker的数量,扩展性好,数据的多副本使得kafka具有高可用,容错性,可维护性好。
15.数据的传输采用了hadoop的avro,通过数据序列化和动态的数据模式,是的kafka具有更好的可维护性。
16.kafka源码是由java,scala开发。
17.源码主要模块包括客户端的生产者和消费者,核心模块。

(随时更新中)

[kafka] kafka的理解

标签:control   lead   原因   队列   状态   offset   核心模块   cal   apache。   

原文地址:https://www.cnblogs.com/larry66/p/13616701.html

版权声明:完美者 发表于 2020-09-17 13:42:05。
转载请注明:[kafka] kafka的理解 | 完美导航

暂无评论

暂无评论...