这里写目录标题
前言
对于高并发情况,我们一般会加入负载均衡(Nginx),将请求分发到分布式服务上,从而减轻各个服务器的压力。但是,因为所有的操作归根结底都是CRUD,所以也可以考虑下从数据库的角度进行解决。
具体方式
数据库实现分库分表 (也就是常说的主从同步、读写分离)
概念讲解
读写分离:
主(master)实现写请求,从(slave)实现读请求,从而减轻数据库的压力。
主从同步:
对于MySQL,master会将执行记录保存到自己的日志系统中,然后传给slave,slave会将master的 日志保存到自己的日志系统中,之后按照日志内容进行同步。(但是mysql的主从同步有延迟性)
主从同步复制有以下几种方式:
(1)同步复制,master的变化,必须等待slave-1,slave-2,…,slave-n完成后才能返回。
(2)异步复制,master只需要完成自己的数据库操作即可,至于slaves是否收到二进制日志,是否完成操作,不用关心。MYSQL的默认设置。
(3)半同步复制,master只保证slaves中的一个操作成功,就返回,其他slave不管。这个功能,是由google为MYSQL引入的。
MySQL实现主从复制、读写分离流程
配置master(修改my.conf):
#根据上一篇文章,编辑my.cnf文件
[root@localhost mysql]# vim /etc/my.cnf
#在[mysqld]中添加:
server-id=1
log_bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=test
#备注:
#server-id 服务器唯一标识。
#log_bin 启动MySQL二进制日志,