阅界资讯

Kafka 三节点集群:只订阅一个 broker 会丢消息吗?能用 VIP订阅 吗?

阅阅界编辑部1阅读8分钟

刷到《Kafka 三节点集群:只订阅一个 broker 会丢消息吗?能用 VIP订阅 吗?》,内容很实在,值得细读。这篇把它的关键做法提炼出来,帮你省下通读的时间,结尾附行动建议。

转载请注明出处: 两个问题,一句话答案: 集群有三个实例,消费者只填其中一个地址,会丢消息吗? —— 不会。但这不代表这样配是安全的。 填一个 VIP(把三个实例收敛成一个入口)行不行? —— 作为"问路入口"可以,作为"数据地址"不行。 这两个判断都来自同一个底层机制。理解了机制,两个问题其实是同一个问题。 一、先建立正确的模型:Kafka 的数据不是按"节点"划分的 绝大多数关于"要不要连三个地址"的焦虑,都来自一个错误的心智模型: 三个节点 = 数据被切成三份,分别存在三个节点上 = 连一个只能拿到三分之一 这个模型属于传统的分片型消息队列, 不属于 Kafka 。

转载请注明出处: 两个问题,一句话答案: 集群有三个实例,消费者只填其中一个地址,会丢消息吗? —— 不会。但这不代表这样配是安全的。 填一个 VIP(把三个实例收敛成一个入口)行不行? —— 作为"问路入口"可以,作为"数据地址"不行。 这两个判断都来自同一个底层机制。理解了机制,两个问题其实是同一个问题。 一、先建立正确的模型:Kafka 的数据不是按"节点"划分的 绝大多数关于"要不要连三个地址"的焦虑,都来自一个错误的心智模型: 三个节点 = 数据被切成三份,分别存在三个节点上 = 连一个只能拿到三分之一 这个模型属于传统的分片型消息队列, 不属于 Kafka 。Kafka 的真实组织方式是这样的: 概念 作用 和"节点"的关系 Topic 消息的逻辑分类 与节点无关 Partition(分区) 数据的 物理切分单位 ,有序、可追加、独立偏移量 一个 topic 的多个分区会散布在不同节点上 Replica(副本) 同一分区的多份拷贝,用于容灾 分布在不同节点,但只有一个是 Leader Leader 该分区 唯一 可读写的副本所在的那个节点 这才是数据真正的"落脚点" Broker(实例) 承载若干分区 Leader/Follower 的进程 只是"房东",不是"数据分片" Consumer Group 消费关系的组织单位,分区在组内成员间分摊 决定"谁读哪个分区",与连了几个节点无关 关键结论一:数据的归属单位是分区,节点的暴露方式是"分区 Leader 在哪台"。

转载请注明出处: 两个问题,一句话答案: 集群有三个实例,消费者只填其中一个地址,会丢消息吗? —— 不会。但这不代表这样配是安全的。 填一个 VIP(把三个实例收敛成一个入口)行不行? —— 作为"问路入口"可以,作为"数据地址"不行。 这两个判断都来自同一个底层机制。理解了机制,两个问题其实是同一个问题。 一、先建立正确的模型:Kafka 的数据不是按"节点"划分的 绝大多数关于"要不要连三个地址"的焦虑,都来自一个错误的心智模型: 三个节点 = 数据被切成三份,分别存在三个节点上 = 连一个只能拿到三分之一 这个模型属于传统的分片型消息队列, 不属于 Kafka 。Kafka 的真实组织方式是这样的: 概念 作用 和"节点"的关系 Topic 消息的逻辑分类 与节点无关 Partition(分区) 数据的 物理切分单位 ,有序、可追加、独立偏移量 一个 topic 的多个分区会散布在不同节点上 Replica(副本) 同一分区的多份拷贝,用于容灾 分布在不同节点,但只有一个是 Leader Leader 该分区 唯一 可读写的副本所在的那个节点 这才是数据真正的"落脚点" Broker(实例) 承载若干分区 Leader/Follower 的进程 只是"房东",不是"数据分片" Consumer Group 消费关系的组织单位,分区在组内成员间分摊 决定"谁读哪个分区",与连了几个节点无关 关键结论一:数据的归属单位是分区,节点的暴露方式是"分区 Leader 在哪台"。 所以"我连了第几台机器"这个概念,在 Kafka 里根本不具备决定读取范围的能力。

转载请注明出处: 两个问题,一句话答案: 集群有三个实例,消费者只填其中一个地址,会丢消息吗? —— 不会。但这不代表这样配是安全的。 填一个 VIP(把三个实例收敛成一个入口)行不行? —— 作为"问路入口"可以,作为"数据地址"不行。 这两个判断都来自同一个底层机制。理解了机制,两个问题其实是同一个问题。 一、先建立正确的模型:Kafka 的数据不是按"节点"划分的 绝大多数关于"要不要连三个地址"的焦虑,都来自一个错误的心智模型: 三个节点 = 数据被切成三份,分别存在三个节点上 = 连一个只能拿到三分之一 这个模型属于传统的分片型消息队列, 不属于 Kafka 。Kafka 的真实组织方式是这样的: 概念 作用 和"节点"的关系 Topic 消息的逻辑分类 与节点无关 Partition(分区) 数据的 物理切分单位 ,有序、可追加、独立偏移量 一个 topic 的多个分区会散布在不同节点上 Replica(副本) 同一分区的多份拷贝,用于容灾 分布在不同节点,但只有一个是 Leader Leader 该分区 唯一 可读写的副本所在的那个节点 这才是数据真正的"落脚点" Broker(实例) 承载若干分区 Leader/Follower 的进程 只是"房东",不是"数据分片" Consumer Group 消费关系的组织单位,分区在组内成员间分摊 决定"谁读哪个分区",与连了几个节点无关 关键结论一:数据的归属单位是分区,节点的暴露方式是"分区 Leader 在哪台"。 所以"我连了第几台机器"这个概念,在 Kafka 里根本不具备决定读取范围的能力。 二、订阅一个实例地址,会发生什么?

转载请注明出处: 两个问题,一句话答案: 集群有三个实例,消费者只填其中一个地址,会丢消息吗? —— 不会。但这不代表这样配是安全的。 填一个 VIP(把三个实例收敛成一个入口)行不行? —— 作为"问路入口"可以,作为"数据地址"不行。 这两个判断都来自同一个底层机制。理解了机制,两个问题其实是同一个问题。 一、先建立正确的模型:Kafka 的数据不是按"节点"划分的 绝大多数关于"要不要连三个地址"的焦虑,都来自一个错误的心智模型: 三个节点 = 数据被切成三份,分别存在三个节点上 = 连一个只能拿到三分之一 这个模型属于传统的分片型消息队列, 不属于 Kafka 。Kafka 的真实组织方式是这样的: 概念 作用 和"节点"的关系 Topic 消息的逻辑分类 与节点无关 Partition(分区) 数据的 物理切分单位 ,有序、可追加、独立偏移量 一个 topic 的多个分区会散布在不同节点上 Replica(副本) 同一分区的多份拷贝,用于容灾 分布在不同节点,但只有一个是 Leader Leader 该分区 唯一 可读写的副本所在的那个节点 这才是数据真正的"落脚点" Broker(实例) 承载若干分区 Leader/Follower 的进程 只是"房东",不是"数据分片" Consumer Group 消费关系的组织单位,分区在组内成员间分摊 决定"谁读哪个分区",与连了几个节点无关 关键结论一:数据的归属单位是分区,节点的暴露方式是"分区 Leader 在哪台"。 所以"我连了第几台机器"这个概念,在 Kafka 里根本不具备决定读取范围的能力。 二、订阅一个实例地址,会发生什么?为什么够用?

行动建议:收藏这篇,下次碰到同类问题先翻出来对照做一遍。好经验的价值,在于用起来。你最近被这类问题卡过吗? 来源|博客园《Kafka 三节点集群:只订阅一个 broker 会丢消息吗?能用 VIP订阅 吗?》,https://www.cnblogs.com/zjdxr-up/p/23007196.html

程序员技术场技术后端

评论(0)

暂无评论,来抢第一条。