大数据开发 Kafka 事务与 ExactlyOnce 语义 为了实现Producer的幂等语义,Kafka引入了Producer ID(即PID)和Sequence Number。每个新的Producer在初始化的时候会被分配一个唯一的PID,该PID对用户完全透明而不会暴露给用户。对于每个PID,该Producer发送数据的每个都对应一个从0开始单调递增的Sequence Number。 yuziyue 29 Jul 2023 · 8 min read
大数据开发 Kafka 使用 Java 多线程消费数据 Kafka 使用 Java 多线程消费数据 下面的示例中,使用多线程消费数据Kafka数据,并手动提交 offset 手动提交的的好处是不会丢失数据,如果程序崩溃,会重复消费部分数据,所以你的程序针对相同的数据可以幂等地运行。 表示在还没有提交过任何 offset 的时候,从什么位置开始消费数据 yuziyue 29 Jul 2023 · 1 min read
大数据开发 Kafka 生产者与消费者 JAVA API 本文总结 Kafka 生产者与消费者的 JAVA API 示例 序列化与反序列化 序列化配置 反序列化配置 1.3 ProducerRecord参数 二. 生产者 创建测试kafka ProducerRecord 消息记录可以简化参数,最简单的可以只有两个参数:topic 和 value,其他的都是用默认值。kafka消息的timestamp如果是自定义的话,不能晚于当前7天,因为晚于7天的消息会被自动删除。 yuziyue 29 Jul 2023 · 4 min read
大数据开发 什么是 Kafka 消费者组 一个分区只可以被消费组中的一个消费者所消费。 一个消费组中的一个消费者可以消费多个分区,例如 C1 消费了 P0,和P3 。 一个消费组中的不同消费者消费的分区一定不会重复,例如:C1 消费 P0和P3 , C2 消费 P1和P2。 所有消费者一起消费所有的分区,例如 C1 和 C2 共同完成了对 P0、P1、P2、P3 的消费。 yuziyue 29 Jul 2023 · 2 min read
大数据开发 Kafka 单机多 broker 部署 Kafka 单机多 broker 部署,即在一台机器上跑多个 broker,正常线上部署时,一台服务器应该只部署一个 broker。单机多 broker 的目的是为了测试学习 Kafka 时使用 备份的节点列表id,无论该节点是否是 leader 或者目前是否还活着,不管node死活,只是列出信息而已。 yuziyue 29 Jul 2023 · 2 min read
大数据开发 Kafka 管理-生产-消费命令行工具 本文将总结 Kafka 中的管理 topic、生产消息、消费消息的常用命令行。一. 启动停止 Kafka 二. Kafka常用命令 2.1 topic 管理 2.2 生产消息 2.3 消费消息 # 消费组:通过组消费,blogGroup 会被自动创建,重新启动时从上次消费的位置开始 # 消费组:查看组详情,包括消费进度、积压数量等 yuziyue 29 Jul 2023 · 2 min read
大数据开发 Kafka 原理与架构完全总结 一台kafka服务器就是一个broker,一个集群由一个或多个broker组成。在kafka的配置文件server.properties中,broker.id=0表示当前服务器的broker ID号,该ID号在集群内是全局唯一的。如果在节点紧缺的时候,一台服务器也可以启动多个broker。Epoch。一个单调增加的版本号。每当副本领导权发生变更时,都会增加该版本号。小版本号的 Leader 被认为是过期 Leader,不能再行使 Leader 权力。 yuziyue 29 Jul 2023 · 20 min read