当前位置: 首页 > news >正文

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

目录

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

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

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

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

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

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

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

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

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

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

二、创建主题的过程

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

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

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

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

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

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

相关文章:

  • Golang实现分布式Masscan任务调度系统
  • 一种TFTransforme扩散模型时间序列预测模型, pytorch架构
  • ArcGIS数据管理与转换、地图制作、数据制备、矢量空间分析、栅格空间分析、空间插值、三维分析、高级建模
  • Modbus TCP转DeviceNet网关连接ABB变频器配置案例
  • Babylon.js场景加载器(Scene Loader)使用指南
  • Android 11开机流程记录
  • 系统安全之身份认证
  • MySQL 8.0的数据库root用户默认无法远程登录,需要修改root的远程授权
  • 换颜色 算法笔记
  • uni-app隐藏返回按钮
  • 【自建grafana接入阿里云sls】
  • JAVA_学习(IDEA
  • 阿里云实践创建实例步骤
  • 云安全【阿里云ECS攻防】
  • leetcode0721. 账户合并-medium
  • Pyenv——使用
  • Java学习笔记之:初识nginx
  • oracle表数据误删除恢复(闪回操作)
  • react中hook和高阶组件的选型
  • flutter把 pubspec.yaml 中的name改成了新的值
  • gta 买房网站建设中/阿里网站seo
  • 德州网站建设维护/网络科技
  • 哈尔滨松北区建设局网站/宁波seo推广优化公司
  • 网络公司网络推广服务/seo外包优化网站
  • omv wordpress/seo工具有哪些
  • 政府网站集约化建设十分重要/岳阳网站界面设计