操作系统-分布式同步

分布式同步概念

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

图片来源于网络

相关推荐
m0_736034851 小时前
ceph分布式存储
分布式·ceph
冷色调的咖啡师2 小时前
1.大数据架构技术 上——搭建分布式Hadoop集群
大数据·linux·hadoop·分布式·hdfs·架构·yarn
坤昱18 小时前
cfs调度类深入解刨——最新内核细节分析5
linux·分布式·cfs调度·eevdf调度·linux调度·linux技术·kernel最新版本内容
AI人工智能+电脑小能手18 小时前
【大白话说Java面试题 第91题】【Mysql篇】第21题:分布式锁的使用场景和原理?
java·数据库·分布式·mysql·面试
JAVA社区18 小时前
Java高级全套教程(十三)—— 分布式锁超详细实战详解(原理+三种方案企业级落地)
java·开发语言·分布式·spring cloud·面试·java-zookeeper
Leo18719 小时前
分布式事务
java·分布式·分布式事务
潮起鲸落入海1 天前
ceph分布式存储认证和授权,块存储管理
分布式·ceph
星马梦缘1 天前
死锁与进程资源分配问题的解法
算法·操作系统·深度优先·死锁
ZPC82101 天前
前馈补偿原理 + 分类 + 公式 + 工程实现(配合 PID 使用,从根源减轻闭环收敛压力)
人工智能·分布式·机器人
闪电悠米1 天前
黑马点评-分布式锁-02_simple_redis_lock_setnx
java·数据库·spring boot·redis·分布式·缓存·wpf