没有合适的资源?快使用搜索试试~ 我知道了~
首页MySQL读写分离集群最佳实践
资源详情
资源评论
资源推荐

资源由 www.eimhe.com 美河学习在线收集分享
1. 实现 MySQL 读写分离
2. 部署集群基础环境
1 实现 MySQL 读写分离
1.1 问题
本案例要求配置 2 台 MySQL 服务器+1 台代理服务器,实现 MySQL 代理的读写分离:
用户只需要访问 MySQL 代理服务器,而实际的 SQL 查询、写入操作交给后台的 2 台 MySQL 服务器来完成
其中 Master 服务器允许 SQL 查询、写入,Slave 服务器只允许 SQL 查询
1.2 方案
使用 4 台 RHEL 7.2 虚拟机,如图-1 所示。其中 192.168.4.10、192.168.4.20 分别作为 MySQL 主、从
服务器,是整个服务的后端;另一台 192.168.4.100 作为 MySQL 代理服务器,是直接面向客户的服务前端;
客户机 192.168.4.120 用作访问测试。
图-1
对比两种方式的读写分离效果——
MySQL 主从复制:客户机访问 Master 服务器来写数据库,客户机访问 Slave 服务器来读数据库。这种情况下,
需要客户端自行区分向何处写、从何处读。
MySQL 主从复制+代理:客户机访问 Proxy 服务器,读、写请求交给 Proxy 识别,如果是写数据库操作则交给
Master,如果是读数据库操作则交给 Slave 处理,具体由分配策略控制。这种情况下,无需客户端区分读、写目标,
而是由 Proxy 服务器代劳了,从而降低了客户端程序的复杂度。
其中 MySQL 主、从复制结构的搭建参考前面的课程,这里不再赘述。
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:部署 mysql-proxy 代理服务器

资源由 www.eimhe.com 美河学习在线收集分享
1)安装 mariadb 官方提供的 maxscale 软件包
1. [root@bogon ~]# rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm
修改配置文件:
1. [root@pxysvr pub]# [root@bogon ~]# grep -E -v '^#' /etc/maxscale.cnf
2.
3.
4. [maxscale]
5. threads=1
6.
7.
8. [server1] #指定 ip 地址对应的名字
9. type=server
10. address=192.168.4.10 #主数据库服务器 ip 地址
11. port=3306
12. protocol=MySQLBackend
13.
14. [server2] #指定 ip 地址对应的名字
15. type=server
16. address=192.168.4.20 #从数据库服务器 ip 地址
17. port=3306
18. protocol=MySQLBackend
19.
20. [MySQL Monitor] #指定要监控的主机 和监控时连接的用户
21. type=monitor
22. module=mysqlmon
23. servers=server1, server2 #前边定义的主机名
24. user=scalemon # 用户名
25. passwd=111111 # 密码
26. monitor_interval=10000
27.
28.
29.
30. #[Read-Only Service]
31. #type=service

资源由 www.eimhe.com 美河学习在线收集分享
32. #router=readconnroute
33. #servers=server1
34. #user=myuser
35. #passwd=mypwd
36. #router_options=slave
37.
38.
39. [Read-Write Service] #定义服务器列表
40. type=service
41. router=readwritesplit
42. servers=server1, server2 #前边定义的主机名
43. user=maxscale # 用户名
44. passwd=111111 # 密码
45. max_slave_connections=100%
46.
47.
48. [MaxAdmin Service]
49. type=service
50. router=cli
51.
52.
53. #[Read-Only Listener]
54. #type=listener
55. #service=Read-Only Service
56. #protocol=MySQLClient
57. #port=4008
58.
59. [Read-Write Listener]
60. type=listener
61. service=Read-Write Service
62. protocol=MySQLClient
63. port=4006
64.
65. [MaxAdmin Listener]
剩余14页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0