IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Master-Slave

共 5 篇相关文章

IT 累计浏览 2,466

FFLIB 框架Broker 之Master/Slave 模式

这篇讲的是 FFLIB 框架中经典的 Master/Slave 架构设计。文章从分布式系统常见的节点角色与协调问题出发,详细拆解了基于 Broker 模式的 Master/Slave 实现。 核心在于,作者厘清了主(Master)从(Slave)节点各自的职责边界与协作流程——Master 负责全局的调度与状态管理,而 Slave 则专注于具体任务的执行与反馈。文中通过组件关系图,清晰地展示了这种模式下消息如何流转、状态如何同步,以及故障时如何进行主从切换。 这种架构模式直观地解决了分布式环境下的负载均衡与高可用问题,将控制逻辑与执行逻辑解耦,让系统结构更清晰。文章最后的实战分析也印证了,采用此模式的框架在稳定性和扩展性上都有不错的表现。

IT 累计浏览 2,725

可伸缩性架构常用技术——之数据切分(Data Sharding/Partition)

这篇讲的是在应对大规模数据场景时,系统架构如何通过“数据切分”来打破单点瓶颈。文章从背景出发,解释了当数据量和访问压力增长时,单一数据库难以承载的痛点,然后系统性地介绍了数据切分(Sharding/Partition)的核心思路。 作者将切分策略主要分为两类:水平切分与垂直切分。水平切分是把同一张表的数据,按照某个字段(如用户ID)的规则(如哈希取模)分散到多个库表中,让数据容量和写入压力得以线性扩展;垂直切分则是将一张宽表的列拆分到不同的库,主要解决单行数据过大或访问频率不均的问题。文章还对比了常见的路由算法(如范围、哈希)以及它们在不同业务场景下的权衡,比如哈希分片能均匀分布数据但范围查询效率低,而范围分片利于区间查询却可能产生热点。 最后,文章没有回避切分后带来的挑战,比如跨分片查询、分布式事务和全局唯一ID等复杂问题,并点明了合理的数据切分是兼顾性能与复杂度的关键一步。整篇文章逻辑清晰,从问题到方案再到后续影响,为需要处理海量数据的开发者提供了一份切实的架构思路参考。

IT 累计浏览 4,405

redis源代码分析 - replication

这篇讲的是Redis主从复制(Replication)机制在源码层面的完整实现。作者从slaveof命令切入,详细拆解了从建立连接到数据同步的全流程。 核心实现思路围绕一系列状态机变迁展开。当slave端收到slaveof命令后,会通过主线程的时间事件发起与master的连接。master收到SYNC指令后,会通过fork子进程进行全量RDB持久化,完成后再将文件发送给slave。slave接收并加载完RDB后,双方便进入基于命令传播的增量同步阶段。整个过程由一系列状态(如REDIS_REPL_CONNECT、REDIS_REPL_TRANSFER、REDIS_REPL_ONLINE等)驱动流转,对应的函数逻辑集中在replication.c中。 文章的巧妙之处在于,作者用流程图和状态图将这个涉及父子进程、多线程事件、文件IO的复杂过程梳理得非常清晰。特别是对master端处理多个slave请求时,如何调度或共享bgsave持久化的几种情况,以及slave端在初始化同步时会暂时阻塞服务这一重要细节,都做了明确说明。这帮助读者快速抓住了Redis复制设计中“先全量、后增量”的核心,以及为保证一致性所付出的代价。

IT 累计浏览 3,906

mysql主从同步快速设置

这篇讲的是作者梳理的一套MySQL主从同步快速配置方法。在实际项目中,搭建主从架构用于读写分离、数据备份或高可用是常见需求,但标准配置步骤有时略显繁琐。作者从实际使用出发,记录了一个比较简便的操作流程,旨在日后能快速复用。 文章重点突出了配置过程中的“快速”与“简便”这两个核心特点。它没有长篇大论地铺陈原理,而是直接切入实操步骤,为需要快速搭建同步环境的开发者提供了一个清晰的路径。对于那些希望简化部署流程、节省配置时间的技术人员来说,这个经过精炼的步骤集合会很实用。

IT 累计浏览 6,525

mysql 主从同步原理

这篇讲的是 MySQL 主从复制背后的工作原理。作者从主从架构的基本形态切入,详细拆解了从主库将数据变更传递到从库的完整过程。核心在于二进制日志(binlog)的写入、从库 I/O 线程的拉取与写入中继日志(relay log),以及从库 SQL 线程的重放执行。文章还对比了基于语句(Statement)与基于行(Row)两种复制模式的差异,指出它们在数据一致性与网络负载上的不同权衡。 更进一步,文章探讨了复制延迟的常见成因,比如大事务、从库性能瓶颈或网络抖动,并提到了使用 GTID(全局事务标识符)来简化故障恢复和拓扑管理的方案。这些细节让读者不仅能理解“怎么做”,还能明白“为什么”以及在实际运维中需要关注什么。 对于需要搭建或维护高可用、读写分离 MySQL 环境的工程师来说,这篇梳理提供了清晰的底层逻辑地图,帮助在设计和排查问题时抓住关键节点。