操作系统-分布式同步

分布式同步概念

如果实现同步的进程分布在不同的服务器中,那么此时的进程同步要用到分布式技术,可用实现分布式的技术有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。

图片来源于网络

相关推荐
j***576818 小时前
【分布式文件存储系统Minio】2024.12保姆级教程
分布式
序属秋秋秋18 小时前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
敲上瘾19 小时前
【探索实战】:Kurator分布式统一应用分发平台的全面解析与实践指南
分布式·容器·kubernetes·serverless
阿巴~阿巴~21 小时前
自定义协议设计与实践:从协议必要性到JSON流式处理
服务器·网络·网络协议·json·操作系统·自定义协议
SuperHeroWu72 天前
【HarmonyOS 6】UIAbility跨设备连接详解(分布式软总线运用)
分布式·华为·harmonyos·鸿蒙·连接·分布式协同·跨设备链接
杜子不疼.2 天前
【探索实战】从0到1打造分布式云原生平台:Kurator全栈实践指南
分布式·云原生
m***l1152 天前
集成RabbitMQ+MQ常用操作
分布式·rabbitmq
拾忆,想起2 天前
Dubbo分组(Group)使用指南:实现服务接口的多版本管理与环境隔离
分布式·微服务·性能优化·架构·dubbo
回家路上绕了弯2 天前
彻底解决超卖问题:从单体到分布式的全场景技术方案
分布式·后端
拾忆,想起2 天前
Dubbo动态配置实时生效全攻略:零停机实现配置热更新
分布式·微服务·性能优化·架构·dubbo