"Kafka:一个分布式消息系统" Kafka 是一个分布式消息系统,旨在提供高性能、可扩展性强、可靠的消息传递服务。Kafka 的架构包括话题(Topic)、生产者(Producer)、代理(Broker)和消费者(Consumer)四个组件。 话题(Topic)是特定类型的消息流,消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。生产者(Producer)是能够发布消息到话题的任何对象。已发布的消息保存在一组服务器中,它们被称为代理(Broker)或 Kafka 集群。消费者可以订阅一个或多个话题,并从 Broker 拉数据,从而消费这些已发布的消息。 Kafka 的生产者可以选择自己喜欢的序列化方法对消息内容编码。为了提高效率,生产者可以在一个发布请求中发送一组消息。消费者可以订阅话题,并从 Broker 拉数据,消费这些已发布的消息。 Kafka 同时支持点到点分发模型(Point-to-point delivery model),即多个消费者共同消费队列中某个消息的单个副本,以及发布-订阅模型(Publish-subscribe model),即多个消费者接收自己的消息副本。 Kafka 的存储布局非常简单。话题的每个分区对应一个逻辑日志。物理上,一个日志为相同大小的一组分段文件。每次生产者发布消息到一个分区,代理就将消息追加到最后一个段文件中。当发布的消息数量达到设定值或者经过一定的时间后,段文件真正写入磁盘中。写入完成后,消息公开给消费者。 与传统的消息系统不同,Kafka 系统中存储的消息没有明确的消息 Id。消息通过日志中的逻辑偏移量来公开。这样就避免了维护配套密集寻址,用于映射消息 ID 到实际消息地址的随机存取索引结构的开销。消息 ID 是增量的,但不连续。要计算下一消息的 ID,可以在其逻辑偏移的基础上加上当前消息的长度。 消费者始终从特定分区顺序地获取消息,如果消费者知道特定消息的偏移量,也就说明消费者已经消费了之前的所有消息。消费者向代理发出异步拉请求,准备字节缓冲区用于消费。每个异步拉请求都包含要消费的消息偏移量。Kafka 利用 sendfile API 高效地从代理的日志段文件中分发字节给消费者。 Kafka 代理与其它消息系统不同,Kafka 代理是无状态的。这意味着消费者必须维护已消费的状态信息。这些信息由消费者自己维护,代理完全不管。这种设计非常微妙,它本身包含了创新。 从代理删除消息变得很棘手,因为代理并不知道消费者是否已经使用了该消息。Kafka 创新性地解决了这个问题,它将一个简单的基于时间的 SLA 应用于保留策略。当消息在代理中超过一定时间后,将会被自动删除。 这种创新设计有很大的好处,消费者可以故意倒回到老的偏移量再次消费数据。这违反了队列的常见约定,但被证明是许多消费者的基本特征。 ZooKeeper 与 Kafka 考虑一下有多个服务器的分布式系统,每台服务器都负责保存数据,在数据上执行操作。这样的潜在例子包括分布式搜索引擎、分布式构建系统或者已知的系统如 Apache Hadoop。所有这些分布式系统的一个常见问题是,你如何在任一时间点确保数据的一致性和正确性? ZooKeeper 提供了一个解决方案,它是一个分布式应用协调器,可以确保分布式系统中的数据是一致的和正确的。 Kafka 和 ZooKeeper 可以一起使用,提供一个高性能、可扩展性强、可靠的分布式消息系统。Kafka 负责消息的传递和存储,而 ZooKeeper 负责分布式应用的协调和管理。这样可以提供一个更可靠、更高效的分布式系统。 Kafka 是一个功能强大、灵活的分布式消息系统,能够满足大多数分布式系统的消息传递需求。它提供了高性能、可扩展性强、可靠的消息传递服务,可以满足各种分布式系统的需求。






























剩余8页未读,继续阅读


- 粉丝: 66
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Aestate-Python资源
- 网络营销和策划.pptx
- YKSwiftNetworking-Swift资源
- 三星中小企业网络安全解决方案.doc
- 通信原理教学.pptx
- 网络程序员工作计划样本.doc
- 我爱我家(主题网络)(20220208022735).pdf
- 公司通信调度系统技术规范及技术方案书.docx
- 网络营销与策划实践环节考核.doc
- 物联网简介幻灯片.ppt
- 华为网络认证工程师.docx
- 基于ARM的Buck-Boost双向DC-DC电源变换器:同步BUCK与BOOST电路级联的数字稳压技术
- 计算机科学与技术专业的知识体系与课程体系.pptx
- 网络推广协议范本最新.doc
- 2023年电子商务基础测试题库.doc
- 酒店住宿及消费管理系统数据库.doc


