欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 【消息队列】——Kafka如何保证配置下发的一致性

【消息队列】——Kafka如何保证配置下发的一致性

2025/6/13 13:27:12 来源:https://blog.csdn.net/li1325169021/article/details/148620758  浏览:    关键词:【消息队列】——Kafka如何保证配置下发的一致性

目录

    • 一、分布式系统的控制面与数据面
    • 二、创建主题的过程
    • 三、创建主题的实现难点
      • 3.1、执行上面这些步骤中如果某个步骤执行失败了,应该如何处理?
      • 3.2、如果在执行过程中,执行流程所在的管控节点宕机了,应该如何处理?
    • 四、Kafka 如何实现创建主题的过程
    • 五、通过异步配置下发达成最终一致
    • 六、小结

本文来源:极客时间vip课程笔记

一、分布式系统的控制面与数据面

  • 任何一个分布式系统都可以按照功能划分为控制面与数据面。

  • 数据面,可以理解为“业务数据流经的部分”,负责数据流入流出、执行业务逻辑处理数据和存储数据。控制面,顾名思义,管理控制集群的功能都被划分到控制平面,业务数据不会流经到控制面。控制面的主要功能包括:存储集群元数据、指导数据面路由、下发配置和策略以及实现集群高可用等。

  • 以消息中间件为例说明。数据面包括生产者、Broker 和消费者。这些都是消息数据流经的组件,都属于数据面。

    生产者:负责发消息。
    Broker:负责接收、存储和分发消息。
    消费者:负责接收消息。

  • 控制面的功能包括:元数据存储、消息路由、集群管理、高可用、选举、认证等功能。

    元数据存储:负责保存集群主题、分区和副本以及集群配置等元数据。
    消息路由:指导生产者将消息发送给特定的 Broker 节点,指导消费者从特定的 Broker 节点获取消息。
    集群管理:负责主题创建、修改和删除,管理集群中的生产者、消费者和 Broker 节点。
    高可用:监控集群节点的健康情况,必要时执行主从切换。
    选举:负责集群内各种主节点选举,比如主副本选举等。
    认证:负责管理用户的认证和权限控制,确保只有授权的用户才能访问特定的资源。

  • 总体来说,集群的数据面负责实现系统的核心业务功能,控制面作为辅助角色,负责管理和控制数据面。

二、创建主题的过程

  • 在学习创建主题的实现过程之前,我们先回顾一下 Kafka 中主题的数据结构。

  • 在 Kafka 中,主题是收发消息的单元,一个主题下面包含多个分区,我们可以把分区理解为一个中转消息的串行队列,多个分区就可以提升主题的并行度,通过水平扩展来提升消息的吞吐能力。

  • 每个分区物理上由多个副本构成,这些副本被分散到不同的 Broker 节点上。同一个分区的多个副本拥有相同的消息数据,它们通过选举产生一个主副本,负责消息收发。

  • 从副本从主副本实时同步消息数据,但不提供任何服务,它的作用是保证高可用和一致性。当主副本所在的 Broker 宕机时,Kafka 会从可用的从副本中选举出新的主副本继续提供服务。

  • 在 Kafka 集群中创建主题是一个比较复杂的流程,简单来说创建一个新的主题,需要完成如下主要步骤:

    1.创建并保存主题、分区和副本这些元数据。
    2.将分区的副本分配给集群中的多个 Broker。
    3.每个 Broker 在本地创建分区副本的消息和索引文件。
    4.为每个分区选举主副本节点。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词