-
Producer
-
负责生成消息,并把消息push到broker集群中。
-
该角色显式知道应该push到broker集群中的哪个或哪几个broker当中
-
-
Broker
-
负责接收生产者push过来的消息,存储到所在的机器文件中
-
-
Consumer Group
-
每个Consumer属于一个特定的Consumer Group。
-
一条消息可以发送到多个不同的Consumer Group,但是一个Consumer Group中只能有一个Consumer能够消费该消息。
-
-
Consumer
-
负责拉取(pull)broker端的消息,进行下一步的处理或是存储
-
-
Topic
-
主题,类似于频道,Kafka根据topic对消息进行归类,发布到Kafka集群的每条消息都需要指定一个topic。
-
-
Partition
-
物理上的概念,一个topic可以分为多个partition,每个partition对应一个broker机器当中的目录,每个partition内部是有序的,是由1个或者多个segment组成。
-
partition leader负责所有响应客户端的读写操作,partition follower是只负责同步和备份leader的数据,不响应用户端读写。
-
-
ZooKeeper协同服务
-
管理broker和consumer,协同Broker集群和Consumer之间的通信
-
-
-
Kafka提供五大核心API
-
Producer API
-
允许应用程序发布流记录到一个或多个kafka主题中。
-
-
Consumer API
-
允许应用程序订阅一个或多个主题,并处理针对这些主题的数据流。
-
-
Connector API
-
实现在Kafka和其他系统之间复制数据的功能,用户创建自定义的从系统中pull数据或push数据到系统的Connector(连接器)。
-
Connector有两种形式:SourceConnectors从其他系统导入数据(如:JDBCSourceConnector将导入一个关系型数据库到Kafka)和SinkConnectors导出数据(如:HDFSSinkConnector将kafka主题的内容导出到HDFS文件)
-
-
Streams API
-
Streams API允许程序作为一个数据流处理应用,将一个或多个topic中输入的数据进行消费,并生产数据流到一个或多个topics中。
-
-
Admin API
-
支持管理和检查topic,broker,acls和其他Kafka对象。
-
-
-
-
leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
-
Replicas:列出了所有的副本节点,不管节点是否在服务中.
-
Isr: 英文is servering replicas的简写,即正在服务中的节点,即正常的副本,其是可以被候选为leader角色的集合