操作系统-分布式同步

分布式同步概念

如果实现同步的进程分布在不同的服务器中,那么此时的进程同步要用到分布式技术,可用实现分布式的技术有Redis、Zookeeper等中间件

分布式同步,也称为分布式协调,是分布式系统中不可缺少的环节,是将不同的分布式组件有机结合起来的关键,对于一个在多台机器上运行的应用而言,通常需要一个协调者来控制整个系统的运行流程,例如执行的先后顺序,或执行与不执行等,这种控制机制就称为分布式同步。

分布式日志收集系统

系统组成

zookeeper在该系统中用于协调与同步日志源集群与日志收集器集群中各个主机的配对关系。即由于扩容、缩容、宕机、网络等问题,引发日志源集群或日志收集器集群中主机数量变化时,能够同步实现日志收集器集群中的任务再分配

工作原理

  1. 收集器注册:在zookeeper上创建各个收集器对应的节点(应为持久节点,因为临时节点不能作为父节点。创建时,再创建一个临时节点作为子节点用于监视收集器主机是否在线)
  2. 任务分配:系统根据收集器与生成器的数量,将所有日志源集群主机(创建为临时节点,作为收集器节点的子节点),分别分配给各个收集器
  3. 状态收集:收集日志源主机状态、收集器的运行状态
  4. 任务再分配Rebalance:当出现收集器挂掉或扩容,就需要动态地进行日志收集任务再分配,这个过程称为rebalance,当zk检测到有收集器宕机或发现有新的收集器接入时,就会执行这个过程。有两种方案(全局动态分配、局部动态分配)

MySQL数据复制总线

系统组成

MySQL数据复制总线是一个实时数据复制框架,用于在不同的MySQL数据库实例间进行异构数据复制。其核心部分由三部分构成:生产者、复制管道、消费者

其中replicator存在单点问题,所以需要为其设置多个热备主机,而这些热备主机需要通过zk来完成分布式协调工作

工作原理

  1. 复制任务注册:不同的复制任务在zk中创建不同的znode
  2. replicator热备:将同一个复制任务部署到多个不同的replicator主机上,但仅使一个处于running状态,而其他处于standby状态。当running状态的主机发生古装,则使某个standby状态的主机切换为running状态,继续完成复制任务
  3. 主备切换:当running态的主机出现宕机,则该主机对应的临时节点将被自动移除,触发watcher回调:在当前处于standby状态中的replicator主机中找到一个序号最小的节点,修改其状态为running。

图片来源于网络

相关推荐
小宇子2B4 天前
一个 pthread_mutex_lock() 到底锁了什么——从用户态 CAS 到内核调度
操作系统
小宇子2B5 天前
多线程 malloc 为什么会变慢——glibc 的 arena 到 bins 全景
操作系统
风吹夏回9 天前
RabbitMQ 核心术语 + Python pika 方法完整讲解
分布式·python·rabbitmq
风吹夏回9 天前
RabbitMQ 三种模式入门:HelloWorld、WorkQueue、PubSub
分布式·rabbitmq·ruby
霸道流氓气质9 天前
分布式追踪与 RequestId 传播完全指南
分布式
cheems95279 天前
[RabbitMQ高级特性] 消息确认机制:从 Ready / Unacked 到 basicAck、basicReject、basicNack 的底层拆解
分布式·rabbitmq·ruby
枫华落尽9 天前
【Hadoop01-完全分布式运行模式】
分布式
隔壁阿布都9 天前
ShedLock 分布式定时任务锁框架介绍
spring boot·分布式
文艺倾年9 天前
【强化学习】数学推导专题,20W字总结(十五)
人工智能·分布式·大模型·强化学习·vibecoding
ACP广源盛139246256739 天前
GSV9001S@ACP#1080P 级视频处理芯片,物理 AI 普及终端的高性价比选择
大数据·人工智能·分布式·嵌入式硬件·spark