Kafka介绍
树图思维导图提供 Kafka 在线思维导图免费制作,点击“编辑”按钮,可对 Kafka 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4ab9c700f57621abc7f56f8fc9176a28
Kafka思维导图模板大纲
特点
消费者
偏移量
在每一个消费者中唯一保存的元数据是offset(偏移量) 即消费在log中的位置.偏移量由消费者所控制
消费者可以采用任何顺序来消费记录
消费者可以重置到一个旧的偏 移量,从而重新处理过去的数据
也可以跳过最近的记录,从"现在"开始消费
基本理解
消费者使用一个 消费组 名称来进行标识,发布到topic中的每条记录被分配给订阅消费组中的一个消费者实例.消费者实例可以分布在多个进程中或者 多个机器上
生产者
基本理解
生产者可以将数据发布到所选择的topic(主题)中。 生产者负责将记录分配到topic的哪一个 partition(分区)中。
消费者组()
注意点
如果所有的消费者实例在同一消费组中,消息记录会负载平衡到每一个消费者实例
如果所有的消费者实例在不同的消费组中,每条消息记录会广播到所有的消费者进程
消费者组中的消费者实例个数不能超过分区的数量
消费者组图解
Producer API
允许一个应用程序发布一串流式的数据到 一个或者多个Kafka topic
Consumer API
允许一个应用程序订阅一个或多个 topic ,并且对发布给他们的流式数据进行处理
Streams API
允许一个应用程序作为一个流处理器,消 费一个或者多个topic产生的输入流,然后生产一个输出流 到一个或多个topic中去,在输入输出流中进行有效的转 换
Connector API
允许构建并运行可重用的生产者或者消 费者,将Kafka topics连接到已存在的应用程序或者数据系 统。比如,连接到一个关系型数据库,捕捉表(table)的 所有变更内容
topic
是数据记录发布的地方
partition
发布的记录保存时间
Kafka 集群保留所有发布的记录—无论他们是否已被消费—并通过一个可配置的参数——保留期限来控制. 举个例子, 如果保留策略设置为2天,一条记 录发布后两天内,可以随时被消费,两天过后这条记录会被抛弃并释放磁盘空间。Kafka的性能和数据大小无关,所以长时间存储数据没有什么问题(默认是7天)
特点
每个分区都是有序且顺序不可变的记录集
不断地追加到结构化的commit log文件
分区中的每一个记录都会分配一个id号来表示顺序,我们称 之为offset
多分区图解
单分区图解
特点
高性能
低延迟
具备日志存储、备份
传播功能
布式文件系统
实现集群
日志的分区partition (分布)在Kafka集群的服务器上。每个服务器在处理数据和请求时,共享这些分区。每一个分区都会在已配置的服务器上进行备份,确保容错性. 每个分区都有一台 server 作为 “leader”,零台或者多台server作为 follwers 。leader server 处理一切对 partition (分区)的读写请求,而follwers只 需被动的同步leader上的数据。当leader宕机了,followers 中的一台服务器会自动成为新的 leader。每台 server 都会成为某些分区的 leader 和某些分 区的 follower,因此集群的负载是平衡的。
数据从文件到套接字的常见数据传输路径
流程
操作系统从磁盘读取数据到内核空间的 pagecache
应用程序读取内核空间的数据到用户空间的缓冲区
操作系统将数据从套接字缓冲区(内核空间)复制到通过网络发送的 NIC 缓冲区
应用程序将数据(用户空间的缓冲区)写回内核空间到套接字缓冲区(内核空间)
缺点
低效(四次 copy 操作和两次系统调用)
零拷贝
可以允许操作系统将数据从 pagecache 直接发送到网络,这样避免重新复 制数据
只需要最后一步的copy操作,将数据复制到 NIC 缓冲区
树图思维导图提供 kafka推送程序 在线思维导图免费制作,点击“编辑”按钮,可对 kafka推送程序 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b057f4d74094e7e9d579dc2c78fdbf3e
树图思维导图提供 title: kafka数据推送 v1.0.0language 在线思维导图免费制作,点击“编辑”按钮,可对 title: kafka数据推送 v1.0.0language 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:30d3a8badad1c622a24459636f35a8ee