网站建设书案例电影网站 备案
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:45
当前位置: 首页 > news >正文
网站建设书案例,电影网站 备案,wordpress 栏目菜单,连凯分销平台介绍 Kafka Kafka 是一款基于发布与订阅的消息系统。 用生产者客户端 API 向 Kafka 生产消息#xff0c;用消费者客户端 API 从 Kafka 读取这些消息。 Kafka 使用 Zookeeper 保存元数据信息。 Kafka 0.9 版本之前#xff0c;除了 broker 之外#xff0c; 消费者也会使用…介绍 Kafka Kafka 是一款基于发布与订阅的消息系统。 用生产者客户端 API 向 Kafka 生产消息用消费者客户端 API 从 Kafka 读取这些消息。 Kafka 使用 Zookeeper 保存元数据信息。 Kafka 0.9 版本之前除了 broker 之外 消费者也会使用 Zookeeper 保存一些信息比如消费者群组的信息、 主题信息、消费分区的偏移量在消费者群组里发生失效转移时会用到。到了 0.9.0.0 版本 Kafka 引入了一个新的消费者接口允许 broker 直接维护这些信息。 Kafka 中的概念 消息 批次 Kafka 的数据单元被称为消息。消息就好比数据库里的一个“数据行”或一条“记录”。消息由字节数组组成所以对于 Kafka 来说消息里的数据没有特别的格式或含义。 消息可以有个可选的元数据也就是键。键也是一个字节数组与消息一样对于 Kafka 来说也没有特殊的含义。键有两个用途可以作为消息的附加信息也可以用来决定消息该被写到主题的哪个分区。最简单的例子就是为键生成一个一致性散列值然后使用散列值对主题的分区数进行取模为消息选取分区。 为了提高效率消息被分批次写入 Kafka。批次就是一组消息这些消息属于同一主题和分区。 如果每一个消息都单独串行于网络会导致大量的网络开销把消息分批次传输可以减少网络开销。不过这要在时间延迟和吞吐量之间作出权衡批次越大单位时间内处理的消息就越多单个消息的传输时间就越长。 批次数据会被压缩这样可以提升数据的传输和存储能力但要做更多的计算处理。 主题 分区 Kafka 的消息通过主题进行分类。主题就好比数据库的表或者文件系统里的文件夹。 主题可以被分为若干个分区一个分区就是一个提交日志。消息以追加的方式写入分区然后以先进先出的顺序读取。要注意由于一个主题一般包含几个分区因此无法在整个主题范围内保证消息的顺序但可以保证消息在单个分区内的顺序。 Kafka 通过分区来实现数据冗余和伸缩性。分区可以分布在不同的服务器上也就是说 一个主题可以横跨多个服务器以此来提供比个服务器更强大的性能。 Kafka 集群通过分区对主题进行横向扩展所以当有新的 broker 加入集群时可以通过分区个数来实现集群的负载均衡。拥有大量消息的主题如果要进行负载分散就需要大量的分区。 生产者 消费者 Kafka 的客户端就是 Kafka 系统的用户Kafka 的客户端被分为两种基本类型生产者和消费者。除此之外还有其他高级客户端 API用于数据集成的 Kafka Connect API 和用于流式处理的 Kafka Streams 。这些高级客户端 API 使用生产者和消费者作为内部组件提供了高级的功能。 生产者 生产者创建消息。在其他基于发布与订阅的消息系统中生产者可能被称为发布者 或 写入者。 一般情况下一个消息会被发布到一个特定的主题上。生产者在默认情况下把消息均衡地分布到主题的所有分区上而并不关心特定消息会被写到哪个分区。不过在某些情况下生产者会把消息直接写到指定的分区。这通常是通过消息键和分区器来实现的分区器为键生成一个散列值并将其映射到指定的分区上。这样可以保证包含同一个键的消息会被写到同一个分区上。生产者也可以使用自定义的分区器根据不同的业务规则将消息映射到分区。 消费者 消费者读取消息。在其他基于发布与订阅的消息系统中消费者可能被称为订阅者 或 读者。 消费者订阅一个或多个主题并按照消息生成的顺序读取它们。消费者通过检查消息的偏移量来区分已经读取过的消息。 偏移量是另一种元数据它是一个不断递增的整数值在创建消息时 Kafka 会把偏移量添加到消息里。在给定的分区里每个消息的偏移量都是唯一的。消费者把每个分区最后读取的消息的偏移量保存在 Zookeeper 或 Kafka 上如果消费者关闭或重启它的读取状态不会丢失。 消费者群组 消费者是消费者群组的一部分。一个群组里的消费者订阅的是同一个主题每个消费者接收主题一部分分区的消息。消费者群组保证每个分区只能被一个消费者使用 。消费者与分区之间的映射通常被称为消费者对分区的所有权关系。 通过消费者群组的方式消费者可以消费包含大量消息的主题。而且如果一个消费者失效消费者群组里的其他消费者可以接管失效消费者的工作。 broker 集群 一个独立的 Kafka 服务器被称为 broker。 broker 接收来自生产者的消息为消息设置偏移量并提交消息到磁盘保存。broker 为消费者提供服务对读取分区的请求作出响应返回已经提交到磁盘上的消息。 根据特定的硬件及其性能特征单个 broker 可以轻松处理数千个分区以及每秒百万级的消息量。 broker 是集群的组成部分。每个集群都有一个 broker 同时充当了集群控制器的角色集群控制器自动从集群的活跃成员中选举出来。集群控制器负责管理工作包括将分区分配给 broker 和监控 broker。在集群中一个分区从属于一个 broker该 broker 被称为分区的首领。一个分区可以分配给多个 broker这个时候会发生分区复制。这种复制机制为分区提供了消息冗余如果有一个 broker 失效其他 broker 可以接管领导权。不过相关的消费者和生产者都要重新连接到新的首领。 保留消息在一定期限内是 Kafka 的一个重要特性。消息被提交到磁盘Kafka 根据设置的保留规则进行保存。主题可以配置自己的保留策略将悄息保留到不再使用它们为止。 Kafka 有两种保留规则 根据时间保留数据根据时间保留数据是通过检查磁盘上日志片段文件的最后修改时间来实现的。一般来说最后修改时间指的就是日志片段的关闭时间也就是文件里最后一个消息的时间戳。当前时间超过磁盘上日志片段文件的最后修改时间超过的时间达到配置参数指定的值那么旧消息就会过期并被删除。根据消息的字节数保留数据当单个主题中所有消息的字节数达到配置参数指定的值那么旧消息就会过期并被删除。所以在任何时刻可用消息的总量都不会超过配置参数所指定的大小。 参考资料 《Kafka权威指南》第1章初识Kafka
- 上一篇: 网站建设售后做视频网站服务器多少钱
- 下一篇: 网站建设书本信息典型网站开发的流程图
相关文章
-
网站建设售后做视频网站服务器多少钱
网站建设售后做视频网站服务器多少钱
- 技术栈
- 2026年03月21日
-
网站建设首先要学会什么网站建设销售年终总结
网站建设首先要学会什么网站建设销售年终总结
- 技术栈
- 2026年03月21日
-
网站建设首先要网站建设高端培训学校
网站建设首先要网站建设高端培训学校
- 技术栈
- 2026年03月21日
-
网站建设书本信息典型网站开发的流程图
网站建设书本信息典型网站开发的流程图
- 技术栈
- 2026年03月21日
-
网站建设书籍目录二级域名网址查询大全
网站建设书籍目录二级域名网址查询大全
- 技术栈
- 2026年03月21日
-
网站建设书籍在线阅读广州网站建设交易
网站建设书籍在线阅读广州网站建设交易
- 技术栈
- 2026年03月21日
