1. 前言
之前的程序架构可能是这样的一种形式:
当程序体量扩大后,我们进行扩展,可能会扩展多个后台服务实例,但数据库还是只有一个,所以系统的瓶颈还是在数据库上面,所以这次的主要任务就是对数据库进行扩展,主要形式为:扩展多台数据库实例,实现读写分离,对于一些写的任务分配到主数据库,对于读的任务使用子数据库进行读取。从而提高系统性能。
修改后的架构如下所示:
2. 环境预搭建
这次使用docker来进行这个环境的搭建,使用MySQL版本为5.7.13。
docker pull mysql:5.7.13
整体结构为:
- 1个master主节点,作为写的节点。
- 2个slave从节点,作为读的节点。
先分别将这几个节点启动,映射到不同的端口。在本机使用数据库连接工具连接,测试是否正常启动且正常连接。
docker run -p 3307:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13
docker run -p 3308:3306 --name mysql-slave1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13
docker run -p 3309:3306 --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.13
我这里分别将主节点(mysql-master)映射为3307
端口,两个从节点(mysql-slave1,2)分别为3308
和3309
端口。然后设置My