如何给老婆解释什么是 Master-Slave

第八章:手把手教老婆实现:RocketMQ集群模式(3)-RocketMQ主从-多Master多Slave模式 其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来目录:部分内容截图:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!并且会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取) 阅读详情

本文公众号来源:柳树的絮叨叨  作者:靠发型吃饭的柳树


这个作者我在知乎关注很久啦,之前看他的Spring系列、给老婆解释什么是RESTful,十分有趣!这篇文章是他新发表的,我看了觉得非常不错,给大家分享一下!


(我之前的文章”给女朋友讲解xxx“的也是借鉴他的风格  haha)

一天,阳光明媚,天朗气清,正是春游的好日子。  

我在家中躺着看权游,老婆在一旁,翻阅着书架上的书。  

和往常一样,她在看到一本技术书时,阅读速度骤降下来,我知道她又要对我进行灵魂拷问了。  

小命不保

“嘿,发现了一个现象。”,老婆说,手中拿着的书,是《高性能Mysql》。  

“嗯哼。”,我故作镇定。  

“你们每本技术书,讲到最后,都要讲一个叫 Master-Slave 的东西。”  

“你是说主从?”  

“主从是个啥子?”  

“主从,emmm,就是...  呃,怎么跟你说呢,这是很简单的概念嘛 ... ”  

"什么,很简单的概念,你意思是说,这么简单的东西我都不懂咯?"  

“呃... ”,我感觉我要跪,仿佛挂在悬崖边上,靠臂力支撑着 ......  

自我救赎

我不想今晚跪搓衣板、洗碗、洗衣服,我的权游还没看完。  

“是这样的,很多东西嘛,一般人都不懂,但只要懂了,就会觉得很简单,比如说去日本旅游,怎么办签证、怎么坐电车、怎么和日本人沟通,没了解之前,都觉得很难,但一旦做成了,就很简单。”,我在悬崖边缘挣扎。  

“嗯哼,是这个道理~”  

貌似已经靠着臂力和背阔肌,把自己拉上去了,暂时安全了。  

“还记得咱们上次坐高铁去长沙,在深圳北那排队取票吗?”  

“记得呀~ ”  

“嗯,咱们去取票,售票处那里,有很多个窗口吧,而且有的窗口上写着,只限取票,不能买票。”  

“嗯嗯,是有这样的。”  

“好,现在我们把这个高铁站售票窗口的模型简化一下,我们假设,一开始,只有一个窗口,既负责售票,又负责取票,你觉得会有什么问题?”  

“那会很烦吧,像咱们这种在网上买票,到了那再取票的,估计得取好久。只有一个窗口,全部人都挤在一块了。”  

“没错,这是只有一个窗口带来的第一个问题:拥挤。”  

“还有别的问题?”  

“是的,你想想看,假设负责这个窗口的员工尿急,想去上厕所,或者这个窗口的电脑坏掉了,用不了,怎么办?”  

“噢,那这时候就一张票也卖不了,一张票也取不了。”  

“嗯嗯,这个叫SPOF,Single Point of Failure,意识是系统里一个节点的故障,导致整个系统都不可用。”  

“Soga,长见识了。”  

“嗯哼,那么,这时候,假设你是高铁站的站长,你会怎么做?”  

“呃,我得请更多的员工,开多几个窗口。”  

“没错,我们再加多几个窗口,现在就不怕有哪个窗口,因为员工尿急或者电脑坏掉而不能提供服务了,如果无法服务,让排队的乘客去其他窗口就好了。”  

“666,那这样就既解决了SPOF,又解决了拥挤问题啦~ ”  

“哈,你都会用软件术语来描述生活问题了。SPOF是肯定解决了,但是拥挤嘛,还可以再继续优化的~”  

“咋优化?”  

“你看,现在各个窗口,都是既可以买票,又可以取票的,但是常识告诉我们,人均买票花费的时间,要远大于人均取票的时间。”  

“啊,对,要是这条队,前面一百个人都是买票的,但是我一个取票的过来了,排到队尾,那就得奔溃... ”  

"是的,所以我们可以优化下,让其中两个窗口,既可以买票又可以取票,或者干脆就只让它们可以买票,这些,我们叫做Master,然后再按需要加多几个窗口,这几个窗口,只能取票。因为他们是为了给 Master 们减轻负担,所以我们叫它们 Slave,这个用软件的术语来描述,就是读写分离"  

“Wow!原来 Master-Slave 是这样个意思~ ”  

“其实,很多软件设计的想法,都可以在生活中找到影子,软件设计也是一门“仿生学”。比如刚开业的小店,可能员工都不多,但是一旦生意上去了,就会招更多的小弟过来,因为一旦顾客想点菜或者买单时,找不到服务员,是很影响心情和体验的。软件也是这样,只放一台机器在那,一旦这台机器忙不过来,就会表现为网页发来的请求,响应很慢,同样影响访客的体验和心情,访客点个按钮,半天没响应,那他们可能就把这个网站拉黑了。”  

“Wow,可以可以,很6嘛~ ”  

我仿佛已经从悬崖边上撑了起来,迎着早晨的阳光,大步往回走 ......  

非程序员请就此止步,程序员请继续往前走……  

对程序员的话

这篇文章用了售票窗口来类比机器,解释什么是 Master-Slave,什么是SPOF,什么是读写分离。  

640?wx_fmt=jpeg

要说这两者最大的不同,那就是售票窗口并不是数据源。  

即我们查询数据时,不会直接从售票窗口查询,而是售票窗口里的服务员,用电脑再去查数据。  

而机器呢,很多机器本身就是数据源,比如Mysql,请求过来后,它们直接从自己身上拉数据,返回出去。这样就要求不同机器上的数据,必须要一致,不能客户从机器A查询,得到结果是“aa”,从机器B查询,得到结果却是“bb”,所以就需要当数据写入 Master 时,把数据同步给 Slave,这就是「主从复制」。  

「主从复制」期间,Slave的数据会和Master不一致,这是「主从延迟」。  

由于「主从延迟」的存在,当Master宕机时,你要优先保证「数据强一致性」还是「服务可用性」,这就是「主从切换」时要考虑的问题了。  

如果你看了这篇文章,还想深入了解 「主从复制」、「主从延迟」和「主从切换」是怎么回事 ,可以看我之前写的:Mysql Replication 简明教程

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,关注即可获取!

640? 640?wx_fmt=jpeg


有趣的灵魂在等你

长按扫码可关注 


推荐阅读:


深入解析AMBA AHB中的Burst Termination机制与应用场景 本文深入解析了AMBA AHB总线中的Burst Termination机制,详细阐述了其三种核心应用场景:Master主动终止未定义长度突发、Slave错误响应强制终止以及多Master系统中的优先级抢占。该机制是保证系统高效、灵活与可靠运行的关键,尤其在处理异常和资源调度时至关重要。文章结合实战经验,为芯片设计者提供了清晰的设计、验证与调试指南。 阅读详情

相关推荐

故障诊断知识库建设指南

从数据融合到知识图谱构建,从智能推理引擎开发到动态进化机制落地,故障诊断知识库的建设路径已形成 “数据 - 知识 - 智能” 的闭环体系。随着大模型技术的深度融入,知识库将实现从 “规则驱动” 到 “认知推理” 的跨越 —— 通过自然语言理解解析复杂故障描述、多模态分析融合图像与信号数据、预测性算法推演故障发展趋势,持续提升诊断的精准度与前瞻性。

极昆仑智慧 1232

Redis实现主从复制(Master&Slave)

由于前段时间公司项目比较赶,一直抽不出时间写博客,今天偷空写一篇吧。前面给大家讲解了单机版redis的基本操作,现在继续给大家讲解一下Redis的进阶部分,主从复制和读写分离。 一、Master&Slave是什么?          也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机 的master/slaver机制,Master以写为主,Slave以读为主。 二、

zhangguanghui002的博客 4万+

Ubuntu新手必看:3种方法快速查看和编辑JSON文件(附jq安装指南)

本文为Ubuntu新手详细介绍了三种查看和编辑JSON文件的核心方法:命令行利器jq、灵活脚本Python以及直观的图形化编辑器(如VS Code)。文章重点解析了jq的安装与核心用法,并对比了各方案的优缺点,帮助用户根据快速查询、复杂处理或直观编辑等不同场景,选择最合适的工具,从而高效处理JSON数据。

weixin_29229989的博客 416

分布式基础(十九)——分布式理论之高可用:Master-Slave

Master-Slave模式是比较常见的高可用架构设计模式,其核心是双机切换操作。后续在集群模式中我们还会详细介绍。

smart_an的专栏 1653

STM32F103四位数码管动态显示实战:从硬件连接到代码调试(附Proteus仿真)

本文详细介绍了STM32F103驱动四位数码管的动态显示技术,从硬件连接到代码调试的全过程。内容包括共阴/共阳数码管的区别、GPIO配置、动态显示原理及优化方法,并附有Proteus仿真验证。通过实战案例,帮助开发者快速掌握STM32数码管动态显示的核心技术。

weixin_29168393的博客 470

我写了一个自动识别火车车厢位置的算法【lidar点云识别】

我写了一个自动识别火车车厢位置的算法【lidar点云识别】

qq_43212290的博客 798

主仆模式(Master-Slave)

十、主仆模式(Master-Slave) 1、核心思想 一个基于分而治之思想设计模式,将一个任务(原始任务)分解为若干个语义等同的子任务, 并由专门的工作者线程来并行执行这些任务,原始任务的结果是通过整合各个子任务的处理结果形成的。 2、评价: 即提高计算效率,又实现了信息隐藏。 3、适用场景 a、并行计算,目的是提升计算性能。 b、容

huzhiqiang优快云的博客 2万+

Qualcomm 常用NV列表

^ NV ITEM ^ 功能^^ |NV10 |mode prefer,找网模式|新平台使用NV80000| ^NV74 NV74=0关闭自动接听电话^ |NV240 |NV240=FALSE|EVDO出现网络的问题,此项必须设定为FALSE| |NV255 |CDMA规避网络列表(SID/NID号)| |NV256 |

sdrgtywretyeruet的专栏 5769

【十七】MySQL-主从(Master/Slave)同步安装与配置详解

MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解 一、安装环境 操作系统Red Hat 4.8.5-28 MySQL 版本:MySQL-5.6.45-1.el7.x86_64.rpm-bundle.tar 主节点 IP:192.168.1.49 从节点 IP:192.168.1.52 二、Master 配置 1、修改 Master 的配置文件 [root@localhost ~]# vi /etc/my.cnf # 在 [mysqld] 中增...

作者:大头兵(kit) 3594

为什么devc++编译项目会失败?提示gcc无法正常启动...

根据你的描述,编译能正常进行时,只打开源文件并没有问题,问题主要出现在创建项目后编译失败,这通常与 Makefile 配置、环境变量、编译器路径设置等因素有关。你可以检查 Makefile 配置,验证 DevC++ 的编译器环境设置,或者尝试清理并重新配置项目。如果问题仍然存在,可以尝试重装 DevC++ 或重新配置工具链。希望如上措施及解决方案能够帮到有需要的你。

**My Coding Family** 1376

视觉自动对焦(Z 轴运动 + 相机拍照 + 清晰度计算) 的核心程序

控制 Z 轴匀速扫动一段距离,在移动过程中等间距触发相机拍照,后台计算每张图的清晰度,最后移动到最清晰的位置,完成自动对焦。

StevenChen的博客 307

MySQL 8.0主从(Master-Slave)配置

如果主从同步遇到 Got fatal error 1236 from master when reading data from binary log: 'Could not find first log...首先遇到这个是因为binlog位置索引处的问题,不要reset slave;reset slave会将主从同步的文件以及位置恢复到初始状态,一开始没有数据还好,有数据的话,相当于重新开始同步,可能会出现一些问题;

Lth520303的博客 1793

在RStudio中使用GitHub Copilot:代码自动生成,从此告别手敲!

可以通过自定义提示词来引导Copilot生成符合自己需求的代码。再看一个做统计分析的。

Codewar的博客 331

第八章:手把手教老婆实现:RocketMQ集群模式(1)-介绍

1、单Master模式这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用。不建议线上环境使用,可以用于本地测试。2、多Master模式一个集群无Slave,全是Master,例如2个Master或者3个Master,这种模式的优缺点如下:优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10时,即使机器宕机不可恢复情况下,由于RAID10磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢),性能最高;

2401_84048521的博客 555

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

第八章:手把手教老婆实现:RocketMQ集群模式,java面试宝典电子版

为什么我不完全主张自学?①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。

2401_83974370的博客 480

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最全第八章:手把手教老婆实现:RocketMQ集群模式(1)-介绍,java面试题缓存方面的问题

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取613a03fab5e56a57acb)收录**

2301_82257317的博客 294

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Redis主从复制(读写分离)原理解析

** 单机的redis并发大概在5万--6万左右。 一:主从架构 二:读写分离(主从复制)原理 1、第一次过程(初始化)【全量复制】 首先启动master,当slave完成配置并且启动以后,slave会向master发送一个ping包,告诉master我现在已经启动了;你是不是应该交给我一些任务去处理吧?这个时候master就会把一些数据提交slave,让slave去处理,那么这个过程就是全量的数据复制; 那么这个数据就rdb文件,master会把rdb文件拷贝一份新的放在磁盘里面,放在.

a898712940的博客 704

mysql 怎么插入文件名_浪子玩了一把MySQL主从

业务场景mysql主从其实我早就想做一次了,因为在一个小公司之前一直没有机会.最近因为历史代码写的糟糕了一点,导致mysql负载过高,所以领导允许做数据库主从了, 哈哈哈哈.(狗头保命)因为之前看过一个mysql主从的视频,所以这次做起来总体比较顺利,当然还是遇到了一些问题滴.好了, 哔哔了一段, 下面进入正题~国际惯例1.什么是mysql主从那么什么是mysql主从呢? 简单来说,就是有2台my...

weixin_39565777的博客 127

oneproxy检测主从复制同步延迟

Q:为什么要实现读写分离延迟检测?A:就好比你在ATM机存钱,你老婆收到短信后乐呵呵的拿网银APP查看,结果钱没过来。其实钱已经到账了,只是查询的ATM机节点钱还没过来。所以我们dba要监控数据,一旦发现钱没有复制到另一ATM机节点,会强制你从存钱的那个ATM机节点去查看。读写分离可以通过php yii框架、java mybatis框架实现,但主从复制的延迟检测一直是重难点,OneProxy内部支...

weixin_33738578的博客 87

java+master+slave框架_Master-Slave通用基础框架

一、设计目的设计出一个通用的Master-Slave基础框架,然后可以基于这个框架来实现特定的业务需求,比如实现多节点并行计算、分布式处理等。二、设计理念基于经典的命令模式,Master和Slave之间通过相互发送命令(Command)实现交互,命令是一个抽象的概念,Command可以用来分发任务,也可以用来传输数据,这完全由业务来决定怎么处理,框架只定义了一个实际的命令-心跳检测命令(Hea...

weixin_39618806的博客 671
上一篇: 目录|Java3y最全目录(2019-6-13更新)
下一篇: 什么是规则引擎?
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值