kafka实战系列
文章平均质量分 79
kafka实战系列
冰糖心书房
Hi:欢迎来到"冰糖心书房",人个目前就职于一家外企业500强公司担任架构师一职,在这里我会着重分享我多年来在Java开发领域的实战经验和心得体会。从企业级项目架构设计、高并发处理到微服务架构的落地实施。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
kafka 什么是生产者的幂等性和事务?如何保证消息只被发送一次?
对于简单的、仅需保证单分区不重复的场景:启用生产者的幂等性) 就足够了。这可以有效防止因网络重试导致的消息重复。对于复杂的、需要原子性写入多个分区或“消费-处理-生产”模式的场景:必须使用事务。在生产者端配置一个唯一的。使用事务 API (等) 来包裹你的生产逻辑以及消费偏移量的提交。这样可以将“读取消息、处理消息、写入结果、提交消费偏移量”这几个步骤捆绑在一个原子事务中。在消费者端设置来确保只消费已成功提交的事务消息。原创 2025-09-22 11:33:32 · 967 阅读 · 0 评论 -
kafka中生产者是如何决定将消息发送到指定分区的?
在某些复杂的业务场景下,默认的分区策略可能无法满足需求。Kafka 允许开发者通过实现接口来定义自己的分区逻辑.实现方式: 开发者可以创建一个类来实现接口,并重写其中的partition方法.配置: 在生产者的配置中,通过参数指定自定义分区器的类名.应用场景: 例如,可以根据业务需求将特定类型的客户订单发送到专门的分区进行处理,或者根据地理位置信息进行分区.原创 2025-09-22 09:32:18 · 535 阅读 · 0 评论 -
kafka 发送消息有哪些模式?各自的应用场景是什么?
模式acks配置可靠性延迟吞吐量适用场景发后即忘acks=0最低最低最高日志收集、监控指标、用户行为分析同步发送acks=1(默认)较高适中适中大部分常规业务场景,如消息通知异步完全确认acks=all-1最高最高最低金融交易、核心订单系统、支付结算选择哪种模式,完全取决于具体的业务需求。开发者需要在可靠性、性能(吞吐量和延迟)之间做出权衡,选择最适合当前应用场景的发送模式。原创 2025-08-18 16:15:43 · 1134 阅读 · 0 评论 -
kafka 生产者是如何发送消息的?
Kafka 生产者发送消息的过程是一个异步流程,旨在实现高吞吐量和可靠性。和。原创 2025-08-18 16:11:10 · 916 阅读 · 0 评论 -
Zookeeper 在 Kafka 中扮演了什么角色?
在 Apache Kafka 的早期架构中,ZooKeeper 扮演了分布式协调服务角色,负责管理和协调整个 Kafka 集群。尽管新版本的 Kafka 正在逐步移除对 ZooKeeper 的依赖,但在许多现有和较早的系统中,了解 ZooKeeper 的作用仍然非常重要。: Kafka 集群中的每个 Broker(节点)在启动时都会向 ZooKeeper 注册自己的信息,例如 IP 地址和端口。原创 2025-08-18 16:03:50 · 692 阅读 · 0 评论 -
kafka 中Offset 的作用是什么?它由谁来管理?
Offset 本身由 Broker 在消息写入时创建。而消费者消费进度的 Offset,则是由。原创 2025-08-13 20:05:10 · 1064 阅读 · 0 评论 -
kafka 消费者组的概念是什么?它是如何实现消息的点对点和发布/订阅模式?
Kafka 消费者组(Consumer Group)是 Kafka 架构中的核心概念,它是一组共同协作来消费一个或多个主题(Topic)数据的消费者应用的集合。通过简单地为多个消费者实例配置相同的group.id,它们就组成了一个消费者组。这一巧妙的设计,使得 Kafka 能够灵活地支持两种经典的消息传递模型:点对点(队列模型)和发布/订阅模型。原创 2025-08-12 16:21:11 · 589 阅读 · 0 评论 -
kafka 消费者的主要职责是什么?
Kafka 采用由消费者主导的拉取模式,这使得消费者可以根据自身的处理能力来控制消息的消费速率,避免因服务端推送过快而导致消费者崩溃。与生产者类似,消费者在收到消息后,需要使用指定的反序列化器(Deserializer)将从 Broker接收到的字节数组转换回原始的键和值对象,以便应用程序进行处理。消费者需要有效处理工作负载,确保消费进度与生产者的写入进度之间的差距(即“延迟”Lag)保持在较低水平,这对于实时数据处理至关重要。原创 2025-08-12 16:16:39 · 390 阅读 · 0 评论 -
kafka 生产者的主要职责是什么?
如果未指定键,则会采用轮询(Round-robin)策略将消息均匀地分发到各个分区。消息通常包含主题(Topic)、分区(Partition,可选)、键(Key,可选)和值(Value)。从 Kafka 0.11 版本开始,通过启用幂等性(Idempotence),即使在发生重试的情况下,也能在分区内保证消息的顺序和精确一次(Exactly-once)的投递语义。它会在内部维护一个缓冲区(RecordAccumulator),将待发送的消息先缓存起来,然后将多条消息打包成一个批次(Batch)再统一发送。原创 2025-08-12 16:12:39 · 449 阅读 · 0 评论 -
kafka 中的Broker 是什么?它在集群中起什么作用?
它维护着关于Topic、分区、副本等状态的元数据,并通过与ZooKeeper(在较新版本中,也可以使用基于Raft的KRaft协议)的协调来保证集群中各个节点信息的一致性。总而言之,Broker是Kafka集群中不可或缺的组成部分,它通过分布式协作,共同承担了消息的存储、转发、高可用保障以及集群管理等多项关键任务,是Kafka实现高吞吐量、可扩展和高可靠性的基石。简单来说,每一个Broker就是运行着Kafka服务的一个实例,多台Broker共同协作,形成了强大的、可扩展的消息处理集群。原创 2025-08-11 18:54:41 · 728 阅读 · 0 评论 -
kafka 副本机制是如何工作的?Leader 和 Follower 是什么角色?
例如,一个主题有 3 个分区,副本因子(Replication Factor)设置为 3,那么每个分区都会有 1 个 Leader 副本和 2 个 Follower 副本,整个主题总共就有。通过这套精心设计的副本机制、Leader/Follower 角色划分以及 ISR 列表,Kafka 在分布式环境下巧妙地平衡了高性能、高可用和数据一致性这三者之间的关系。的设计,简化了数据一致性的逻辑。因为所有读写操作都集中在 Leader 上,避免了分布式系统中常见的数据冲突和复杂的共识算法问题。原创 2025-08-09 11:37:54 · 1119 阅读 · 0 评论 -
kafka 为什么需要分区?分区的引入带来了哪些好处
简单来说,Kafka 之所以需要分区,最根本的原因是为了实现可伸缩性(Scalability)和高吞吐量(High Throughput)。一个没有分区的 Topic 就像一条单行道,所有的车(数据)都必须排成一队依次通过,其处理能力会受限于单个服务器(Broker)的磁盘 I/O 和网络带宽。而引入分区,就相当于将这条单行道拓宽成了多条并行的高速车道,极大地提升了通行能力。这是分区最主要的好处。分区是实现并行消费的关键。例如,一个订单系统,可以将订单消息分散到 10 个分区。在处理高峰期,可以启动 10原创 2025-08-08 16:40:49 · 1170 阅读 · 0 评论 -
Topic 在 Kafka 中扮演什么角色?它与传统消息队列中 Queue 的区别?
在 Kafka 中,扮演着至关重要的角色,它是消息的逻辑分类和组织单元。你可以把它想象成数据库中的表,或者是文件系统中的文件夹。生产者将消息发布到特定的主题,而消费者则通过订阅主题来接收消息。原创 2025-08-06 16:13:53 · 1334 阅读 · 0 评论 -
什么是 Kafka 中的消息?它由哪些部分组成
在 Apache Kafka 中,消息是其核心数据单元,是生产者(Producer)和消费者(Consumer)之间传递信息的载体。它是一个分布式的流处理平台,旨在提供高吞吐量、可扩展和可靠的消息系统。每一条发布到 Kafka 集群的消息都有一个类别,这个类别被称为主题(Topic)。原创 2025-08-06 16:11:15 · 1962 阅读 · 0 评论 -
kafka与其他消息队列(如 RabbitMQ, ActiveMQ)相比,有什么优缺点?
Kafka、RabbitMQ 和 ActiveMQ 是三种最主流的消息中间件,它们的设计和适用场景有所不同。现在,我们来深入探讨 Kafka 相对于另外两者的具体优缺点。原创 2025-08-03 16:20:10 · 1069 阅读 · 0 评论 -
Kafka 是什么?
Kafka 是一个开源的分布式事件流处理平台。Kafka 的设计目标是为处理实时数据流提供一个统一的、高吞吐量、低延迟的平台。从本质上讲,可以将 Kafka 理解为一个高度可靠且可扩展的“日志”或“记录簿”,用于记录在不同系统和应用程序之间发生的“事件”。凭借其高性能和可扩展性,Kafka 被广泛应用于各种场景,超过 80% 的财富 500 强公司都在使用它。总而言之,Kafka 不仅仅是一个消息队列,它更是一个功能强大的分布式事件流平台,为构建数据驱动的实时应用程序提供了坚实的基础。原创 2025-08-03 16:10:03 · 653 阅读 · 0 评论
分享