为什么选择Kafka
-
- 多个生产者
- 多个消费组
- 基于磁盘的数据存储
- 伸缩性
- 高性能
使用场景
-
- 活动跟踪
前台用户活动的相关信息,例如页面访问次数和点击量,缓冲用户的资料。在大数据生态,为机器学习系统提供数据。 - 传递消息
- 度量指标和日志记录
- 提交日志
- 流处理
- 活动跟踪
主题和分区
- Kafka的消息通过
主题进行分类,主题可以被分为若干个分区,一个分区就是一个提交日志。消息以追加的方式写入分区,然后以先入先出的顺序读取。分区可以分布在不同的服务器上,也就是说,一个主题可以横跨多个服务器。
生产者和消费者
-
生产者
消息发布者或者写入者,一般情况下,一个消息会被发布到一个特定的topic上。不过,可以通过消息键和分区器把消息写到指定的分区。消费者
消费者订阅一个或多个topic,并按照消息写入的顺序读取它们。消费者通过检查消息的偏移量来区分已经读取过的消息。偏移量是另一种元数据,它是一个不断递增的整数值,在创建时,Kafka会把它添加到消息里。消息偏移量保存在zookeeper上,如果消费者关闭或者重启,它的读取状态不会丢失。消费组
消费者是消费组的一部分,也就是说,会有一个或多个消费组共同读取一个topic。每个分区只能被一个消费者读取。
broker和集群
- 一个独立的Kafka服务节点被称为broker。broker接收来自生产者消息,为消息设置偏移量,并提交消息到磁盘保存。broker为消息者提供服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息。
broker是集群的组成部分。每个集群都有个broker同时充当了 集群控制器的角色(自动从集群的活跃成员中选举出来)。控制器负责管理工作,包括将分区分配给broker。在集群中,一个分区从属于一个broker,该broker被称为分区的首领。一个分区可以分配给多个broker,这个时候会发生分区复制。
消息中间件Kafka 介绍
最新推荐文章于 2024-07-14 14:05:02 发布