OneProxy :: 更改部份参数默认值,简化云端MySQL中间件布署和配置!

今天为云上一主多读MySQL集群(RDS模式)搭建OneProxy中间件时,发现配置文件中呈现出来的条目过多,显得软件有点过于复杂,有点不是那么友好。下面是软件包中的配置项:

[oneproxy]
keepalive     = 1
event-threads = 4
log-file      = log/oneproxy.log
pid-file      = log/oneproxy.pid
lck-file      = log/oneproxy.lck

proxy-address            = :3307
proxy-socket-file        = /tmp/oneproxy.sock
mysql-version            = 5.6.31

proxy-httpserver         = 0.0.0.0:8080
proxy-httptitle          = OneProxy Monitor
proxy-httpauth           = admin:oneproxy

proxy-auto-readonly      = 1
proxy-slave-addresses.1  = 192.168.1.120:3306@default
proxy-slave-addresses.2  = 192.168.1.119:3306@default

proxy-user-list          = test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test
proxy-group-policy       = default:read_balance

回来后仔细想了一下,针对云端的一写多读RDS实例,可以将一些参数的默认值进行修改,以便减少配置文件中的内容。经过数十分钟的代码修改后,简化的配置文件如下:

[oneproxy]
proxy-license            = A2FF461456A67F28,D2F6A5AD70C9042D

proxy-httpserver         = 0.0.0.0:8080

proxy-auto-readonly        = 1
proxy-slave-addresses.1    = 192.168.1.120:3306@default
# proxy-slave-addresses.2  = 192.168.1.119:3306@default
# proxy-slave-addresses.3  = ...

proxy-group-policy         = default:read_balance

proxy-user-list            = test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test

简化后的配置文件中,主要包含以下5个参数:

  • proxy-license:设置OneProxy软件的企业版许可证,如果自己有云平台这个参数也可以省了,直接和云帐号关联就行。
  • proxy-httpserver:OneProxy内置性能监控的Web端口,可以查看所有SQL语句的性能(默认访问口令为:admin/OneProxy)。
  • proxy-auto-readonly:自动识别后端MySQL结点的读写状态设置(read_only系统变量),将只读节点标记为从库,将读写结点标记为主库,可以和MHA、Group Replication等密切配合,进行自动切换。
  • proxy-slave-addresses.[0-255]:添加多个云端实例的地址(含主机和端口),在这里全部标记为Slave类型也没问题,OneProxy会自动识别后端MySQL结点的读写状态作自动调整,已在多家云上进行过逻辑验证。
  • proxy-group-policy:设置MySQL读流量的分担(Load Balance)模式,通常为“read_balance”或“read_slave”,OneProxy已经支持强一致性的读写分离,请尽情地使用读写分离功能吧!
  • proxy-user-list:设置可连接OneProxy的登录信息(也包括连到后端MySQL的登录信息),为什么不直接从后端MySQL中读取系统表来获取信息,是因为OneProxy支持前后端密码分离(OneProxy登录密码不同于MySQL真实密码)功能,可以提升数据库的安全性(许多应用程序里直接填写明文密码,在云端还是需要注意的)。

其他可以调整的重要参数有:

  • mysql-version:显示给关端的MySQL版本号,应当取后端MySQL实例中的最低版本号,默认为“5.5.18”。
  • proxy-address:OneProxy绑定的地址和端口,即用来替换应用程序中的MySQL地址和端口,应用就不应当直连MySQL了,而是改连OneProxy的地址,将OneProxy实例当作MySQL实例来对待。
  • proxy-strict-poolmax:严格控制后端连接池的大小,特别适用于云端数据库后端连接数受限的情况,可通过OneProxy将应用的连接数放大到无限量。

后面可以考虑将默认的流量分担策略改为“read_blance”,现在的默认值还是“master_only”(即读写都在一台),将可以进一步简化配置文件。更多的其他配置参数,可以咨询我们,OneProxy是一个可以充分自主运维的多功能中间件,非常适合互联网应用。