1. kafka基本概念
Producer
消息和数据生产者,向kafka的一个topic发布消息的进程/代码/服务
Consumer
消息和数据的消费者,订阅数据(topic)并且处理其发布的消息的进程/代码/服务
Consumer Group
逻辑概念,对于同一个topic,会 广播给不同的group,一个group中只有一个consumer可以消费该消息;
Broker
物理概念,kafka集群中的每个kafka节点;
topic
逻辑概念,kafka消息的类别,对数据进行区分、隔离;
Partition
物理概念,kafka下数据存储的基本单元。一个Topic的数据,会被分散储存到多个partition是有序的;
Replication
同一个partition可能会有多个Replica,多个replica之间数据是一样的;
replication leader
一个partition的多个replica上,需要一个Leader负责该partition上与producer和Consumer交互;
replicaManager
负责管理当前broker所有分区和副本的信息,处理kafkaController发起的一些请求,副本状态的切换,添加/读取消息等;
2. kafka基本概念延伸
Partition:
1、每个topic被切分为多个partitions
2、消费者数目少于或等于partition的数目
3、Broker group中的每一个broker保存topic的一个或多个partitions
4、Consumer Group中的仅有的一个consumer读取topic的一个或多个partitions,并且是唯一的consumer;
Replication:
1、当集群中有broker挂掉的情况,系统可以主动的使用replicas提供服务;
2、系统默认设置每一个topic的replication系数为1,可以在创建topic时单独设置;
特点:
(1) Replication的基本单位是topic和partition;
(2) 所有的读和写都从leader进,followers只是做为备份;
(3) follower必须能够及时复制leader的数据
(4) 增加容错性和可扩展性;
3.kafka的基本结构
包括四种:
Producer Api
Consumer Api
Streams Api
Connectors Api
kafka的特点
分布式
多分区
多副本
多订阅者
基于Zookeeper调度
高性能
高吞吐量
低延迟
高并发
时间复杂度为O(1)
持久性与扩展性
数据可持久化
容错性
支持在线水平扩展
消息自动平衡
kafka应用场景
消息队列
行为跟踪
元信息监控
日志收集
流处理
事件源
kafka简单案列
下载与安装
- zookeeper下载:https://zookeeper.apache.org/releases.html#download
- kafka下载: http://kafka.apache.org/downloads
- 安装:解压,配置环境变量