在先前的文章里,我详细介绍了在高并发、高负载的环境下如何运用nginx进行后台服务的负载均衡:具体操作是在阿里云上配置nginx、uwsgi以及负载均衡的相关设置。然而,这并不意味着一切问题都能得到解决。一旦深入到数据业务层和数据访问层,若依然采用传统的数据结构,或者仅依赖单台服务器进行负载,面对如此大量的数据库连接操作,数据库很可能会崩溃。一旦数据库出现故障,其后果将不堪设想。此时,我们需思考降低数据库连接数量的策略,一方面可通过运用卓越的代码架构对代码进行优化,另一方面可运用高效的数据缓存技术,例如redis。若资金充足,我们自然会考虑搭建mysql服务集群,以此分散主数据库的负载。今日,我将总结如何通过MySQL的主从配置实现读写分离,进而减轻数据库的压力。
为了确保目标清晰,我们计划构建一个MySQL集群,并实施主从复制机制。具体来说,集群将采用一主一从的配置方案,其中主库负责处理所有的写入操作,而从库则负责实时同步主库的数据,并承担读取业务,以此实现读写分离的功能。
MySQL的主从复制机制相当直观,从服务器会启动两个并行运行的线程,分别是I/O线程和SQL线程;其中,I/O线程负责向主服务器请求二进制日志,并将这些日志内容记录到中继日志文件里;与此同时,主服务器会派生出一个日志转储线程,专门负责向从服务器的I/O线程传输日志数据。
SQL线程负责从relay log文件中读取日志记录,将其解析为具体的操作指令,以此确保主从复制操作的一致性,并最终达到数据同步的目的。

首先,需准备两台阿里云服务器,一台作为主服务器,另一台作为从服务器,并确保它们均已安装好MySQL 7。至于MySQL服务的安装步骤,请参考相关教程。
进入服务器
修改mysql配置文件 vim /etc/f,加入如下配置
server-id=1
在配置文件中设置innodb_flush_log_at_trx_commit的值为2,意味着事务提交时仅将日志缓冲区刷新到磁盘。
sync_binlog=1
log-bin=mysql-bin-1
配置说明:
设定主服务的标识码(该标识码可自行指定,但需确保与从服务的标识码相异)。
-id=1
将参数设置为1固然最为稳妥,然而在性能方面却相对较低(相较于另外两个选项,但尚在可接受范围内)。若对数据的一致性与完整性要求不高,那么将其设置为2是可行的。而若追求极致的性能,比如在高并发写入日志的服务器中,则可以将参数设为0以实现更高的性能表现。
=2
#开启 志同步功能
=1
# 日志文件名
log-bin=mysql-bin-200
此选项意味着仅对特定库进行同步操作(若未选择该选项,则同步所有库)。
-do-db=xxxx
保存后,重启mysql
systemctl restart mysqld
启动MySQL命令行工具,输入命令:mysql,然后使用用户名root,并输入您设定的密码。
输入授权命令
授权repl用户在所有数据库上执行复制从属操作,用户认证信息为用户名为repl,密码为Admin123!。
所有奴隶均可利用账号repl以及相应的密码,进行数据的同步操作。
然后查看的状态:
show master status;

把file列和列记录下来,一会配置slave要用到
此时的配置已经搞定,登录一下从机(slave)
按照相同的方法,对slave服务器的mysql配置文件进行编辑,操作步骤为打开/etc/f目录下的文件,并在其中添加以下设置,同时要注意的是,配置中的-id参数值不应与已有的设置重复。
server-id=201
在配置文件中设置innodb_flush_log_at_trx_commit的值为2,以此确保事务提交后,日志文件仅每秒刷新一次。
sync_binlog=1
log-bin=mysql-bin-201
保存后重启服务
进入mysql命令行 mysql -uroot -p你的密码
输入命令:
将主配置更改为:主服务器地址为39.106.228.179,用户名为repl,密码为Admin123!,日志文件为mysql-bin.000002,日志位置为154。
命令说明:
: 主机的ip
: 主机授权的用户.
: 主机授权时候填写的密码
: 主机show ;中的File
: 主机show ;中的.
输入命令启动slave
start slave;
可以查看slave的状态:
show slave status G;
接下来,我们将对写入操作进行测试,观察salve是否能够实现数据的同步。

当然,MySQL的读写分离主从设置并非适用于所有情况,需根据具体的应用需求来挑选合适的方案。MySQL的主从复制机制存在一定的延迟,因此在那些对数据实时性要求极高的场景下,并不建议采用这一配置。
扫一扫在手机端查看
- 上一篇:阿里云大模型交通行业应用_从“零投入”到“高配置” 阿里云「大模型+交通」的确定性是什么
- 下一篇:php master-slave Hadoop MapReduce步骤详解_MapReduce开发运行的精简原理
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1