• 微信:WANCOME
  • 扫码加微信,提供专业咨询
  • 服务热线
  • 0769-23063100
    13027920428

  • 微信扫码访问本页
技术分享
用什么技术建设知识变现系统?用哪种开发技术比较好?选用哪种数据库?

MySQL数据库架构和同步复制流程

旺道.商弈 -> 技术分享


在分布式系统里面,往往制约整个系统发展的瓶颈点就是数据库,所以数据库的架构和高可用以及数据库的切分都是我们值得花大力气去学习的。

首先我们来说说数据库的架构。

 

1、mysql主从架构,如图:

这种架构基本上90%以上会采用的数据库架构。这种架构的 优点:1、数据库架构简单 2、维护方便 缺点:1、master存在单点问题,不能停机维护 2、读压力大slave过多的话,主从同步会影响master的性能

 

2、Dual Master 复制架构

上面的主从架构存在明显的单点master问题,master不能停机维护,那么就有了接下来这猴子那个双主架构。如图:

这种双主架构,数据库有两个主,主和主之间是有双向复制的,但是我们应用程序切记不能有一个写入口,不能同时两个master都做写操作,这样可以避免可能出现的数据不一致的情况,另外一台主机视情况而定,如何读压力大,另外一台主机可以做读操作,读压力不大,另外一台主机纯粹是为了做多活做主的备份,可以用第三方工具做主备切换,比如keepalived。


这种双主架构的 

优点:1、不存在master的单点问题 

缺点:1、读压力大的时候,扛不住

 

3、级联复制架构(Master --- Slaves --- Slaves ...) ...)

级联复制架构是为了解决大量slave连到master造成master性能下降的问题。那么架构图如下:

从架构图看,由slave来把数据同步到另外的slave,这样连接到master节点的slave就变少了。优点:1、减轻了master复制数据的压力 缺点 1、存在数据延迟的问题

 

4、Dual Master 与级联复制结合架构(Master - Master - Slaves)

前面的双主和级联复制都存在问题,现在这个架构是结合了这两种的架构,架构图如下:

这种架构就集合前面两种架构的优点 

优点 

1、不存在master单点问题 

2、减轻了写节点master的复制压力 

缺点 

1、写节点master挂了以后,另外一台master变成写节点,挂了的master启动以后,要把所有slave切换到这台启动的master上做数据同步。

 

前面讲到了4种数据库加过,里面大量提到了数据库同步的概念,那么接下来说说mysql数据库同步流程,流程图如下:

mysql默认是采用的异步复制模式,流程如下:

master端 

1、用户提交 

2、写binlog日志 

3、引擎级别提交 

4、结果返回客户端程序

 

slave端 

1、master端event监控到binlog日志变化,通知给master端的dump进程 

2、dump进程通知给slave端的IO进程 

3、IO进程从master-info中获取需要同步的文件和文件位置 

4、IO进程把binlog文件和pos位置通知master端dump进程 

5、master准备数据把数据同步给slave端 

6、slave收到数据把数据写到relay log中 

7、slave relay log写成功后给master一个成功的应答

 

mysql异步复制配置 

master端my.cnf配置 

server-id=135 #开启复制功能 

log-bin=mysql-bin auto_increment_increment=2 

auto_increment_offset=1 

lower_case_table_names=1 #binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库 #binlog-ignore-db=mysql //要忽略的数据库

 

slave端my.cnf配置 server-id=133 log-bin=mysql-bin 

auto-increment-increment=2 

auto-increment-offset=2 

lower_case_table_names=1 #replicate-do-db = wang #需要同步的数据库 #binlog-ignore-db = mysql #binlog-ignore-db = information_schema

 

1、在master mysql添加权限 GRANT REPLICATION SLAVE,FILE,REPLICATION CLIENT ON . TO 'repluser'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;

2、在master上查看master的二进制日志 show master status;

3、在slave中设置master的信息 change master to master_host='192.168.88.135',master_port=3307,master_user='repluser',master_password='Jack@123456',master_log_file='mysql-bin.000001',master_log_pos=154;

4、开启slave,启动SQL和IO线程 start slave; 

5、查看slave的状态 show slave status\G

6、master slave查看进程信息 SHOW PROCESSLIST;


mysql增强版半同步复制 增强版半同步复制配置:

1、加载lib,所有主从节点都要配置 主库:install plugin rpl_semi_sync_master soname 'semisync_master.so'; 从库:install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; 可以一起装。建议一起装,因为会有主从切换的情景

2、查看,确保所有节点都成功加载 show plugins;

3、启用半同步 先启用从库上的参数,最后启用主库的参数 从库:set global

rpl_semi_sync_slave_enabled = {0|1}; # 1:启用,0:禁止 主库:set global

rpl_semi_sync_master_enabled = {0|1}; # 1:启用,0:禁止 set global

rpl_semi_sync_master_timeout = 10000; # 单位为ms

4、前面配置弄完以后,在slave节点必须关闭io_thread节点才能使半同步复制生效 stop slave io_thread; start slave io_thread;


master节点日志信息:开启半同步,关闭异步

半同步复制在master端进行引擎提交的时候会等待,直到slave写relay log成功后,给master ACK应答成功才会进行引擎提交。



来源:https://www.toutiao.com/i6836271302811058691/
END






PHP开源社区

扫描关注  进入”PHP资料“

免费获取进阶

面试、文档、视频资源   

适合美术机构、书法培训机构管理软件有哪些功能特点

美术、书法培训机构,是除了音乐、舞蹈、机器人编程等教育培训机构以外,提升孩子美学和文化艺术素养的素质教育机构。一家中小型的美术、书法机构,可能已

程序员三大基础思维简谈:协议、接口和分层

不管是硬件设备、软件概念或者是网络通讯中,协议、接口无处不在,软件系统离不开分层模型。协议和分层,各种课程都有涉及,但可惜的是,很多计算机类专业

别把 OpenAI 太当回事,它远未达到替换前端的地步

转载说明:原创不易,未经授权,谢绝任何形式的转载最近几个月,我和很多初入行的开发人员交谈,他们对AI越来越感到焦虑。他们看到像GPT-4这样的工

小红书高时效推荐系统背后的技术升级

在小红书 APP 中,推荐系统的实效性对推荐效果有着特别重要的影响,特别是作为 UGC 平台,小红书的推荐系统如果能更快地捕捉用户与笔记之间的变

吃不透浏览器的底层响应原理,前端只能被叫“切图仔”

我们会详细分为以下几大模块进行系统的讲解:1、DNS解析2、TCP 连接3、HTTP 请求4、构建 DOM 树5、构建 CSSOM 树6、生成渲

Google 在中国大陆上线官方镜像资源站,为开发者提供访问和支持

摘要: Google 中国近日在其运营的公众号「谷歌开发者」中发布公告:目前国内开发者可通过 google.cn 直接访问 web.dev 以及... ...

生意之道:想赚大钱,就要学会与人分钱

只要你得到了好处 ,你就一定要分给别人,你只要每次都给了别人好处,你就会有源源不断的生意,就会源源不断地赚到许多莫名其妙的钱财,哈哈,这个莫名其... ...

2024流量共生,公域做规模,私域要复利

公域和私域是共生关系,在单独探讨一方时候总不自觉地思考与另一方的关系和联动。有很多企业两者之间会有所侧重,比如重公域销售,跑通投产比就持续放大,... ...

Nginx 常用配置汇总!从入门到干活足矣

众所周知,Nginx 是 Apache服务不错的替代品。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力在同类型的网页服务器中表现... ...

分布式架构和微服务架构的区别

1、含义不同微服务架构是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中。分布式系统是若干独立计算机的集合,这些计算机... ...

大屏可视化综合展示平台解决方案

概述建立大屏可视化综合展示平台,构建各业务板块统一的大数据分析平台,构建数据驾驶舱与智慧调度平台。深入探索挖掘企业的客户信息数据,以“大数据”理... ...

Ideogram:一款秒杀Midjourney,免费无限生成的AI绘画神器

导读:Ideogram AI是一个文本生成图片的平台,它最大的优点就是好用、免费又没有生成限制,因此可以秒杀MJ和SD。AI绘画是人工智能领域的... ...

陈春花:营销的根本在于理解消费者

巨变时代,企业曾经行之有效的经验和方法也许不再有效,营销需要做合适的事情,其根本在于理解消费者,在创造顾客价值上的有所作为。春暖花开市场经济环境... ...

穷人变富需要具备的四大能力,你有吗?1 抗拒诱惑游戏、视频、麻将-今日头条

穷人变富需要具备的四大能力,你有吗?1 抗拒诱惑游戏、视频、麻将、小说等等这些东西无时不刻诱惑着我们。穷人若想变富,必须要把精力和时间用在学习知... ...

ChatGPT时代,重新定义官网

ChatGPT时代已来,人机之间用自然语言交流成为现实,用户表达需求的方式可以更自然、更直接。那么,各大网站上复杂的导航栏设计、重复性极高的筛选... ...

小红书高时效推荐系统背后的技术升级

在小红书 APP 中,推荐系统的实效性对推荐效果有着特别重要的影响,特别是作为 UGC 平台,小红书的推荐系统如果能更快地捕捉用户与笔记之间的变... ...

你的店铺真的盈利了吗?万能「烘焙运营公式」奉上!

面包王子说:做好一个店铺,并不只是运营店铺,而是在做一家企业,门店需要一家企业所要拥有的一切。包括:组织能力、战略能力和营销能力的三大方向。我们... ...