oneproxy 参数详解 数据库中间件

785次阅读
没有评论

OneProxy 是由原支付宝首席架构师楼方鑫开发,目前由楼方鑫创立的杭州平民软件公司(@平民架构)提供技术支持。它保留了 MySQL-Proxy 0.8.4 官方版本上其协议处理和软件框架,然后对软件做了大量优化,极大增强了系统的并发能力

oneProxy 功能

  • 读写分离
  • 高可用
  • 主从服务器延时检测
  • 动态扩容
  • 性能统计
  • 连接池

OneProxy 常用参数说明

–user=<user>

以指定的用户运行 oneproxy

–pid-file=<file>

指定 oneproxy 的进程 pid 文件路径

–log-level=(error|warning|info|message|debug)

指定 oneproxy 的日志输出级别

–log-file=<file>

指定日志文件的路径

–keepalive

开启进程守护,当 oneproxy 进程挂掉后重启 oneproxy

–max-open-files

显示指定 oneproxy 的最大文件句柄数,默认 Soft Limit 为 32768,Hard Limit 为系统指定的大小

–event-threads

指定 oneproxy 的线程数,默认为 8,建议为 CPU 的 processor 数量

–max-idle-time

在连接池中的连接最大空闲时间,指 oneproxy 与 backends 之间的连接,数据库中 interactive_timeout 的值要大于(max-idle-time+10),max-idle-time 最大值为 1800 秒

–proxy-address=<host:port>

设定 oneproxy 提供服务的监听端口,在单机环境下,可指定监听 IP 及端口;在高可用环境下可忽略 IP,例如 –proxy-address=:3306

–proxy-user-list=<user:passwd@dbname>

设定在当前 group 中访问 dbname 的用户名和密码,其中密码是经过管理接口中 passwd 进行加密的字符串。建议在管理接口中使用 passwd‘password’; 密码需用引号引起来,否则在使用特殊字符时密码会被截断

–proxy-database=<dbname>

设置通过 oneproxy 访问的默认数据库,默认为 test 库

–mysql-version=<version>

指定后端数据库的版本号,默认为 5.5.18,此处主要是防止高版本的 JDBC 驱动连接 oneproxy 时,JAVA 应用日志里出现“Caused by: java.sql.SQLException: Unknown system variable ‘tx_read_only’”的错误导致应用无法启动。

–proxy-connect-timeout=<number>

设定 oneproxy 与后端建立连接的超时时间,默认为 2 秒

–proxy-read-timeout=<number>

设定 oneproxy 对后端进行读操作的超时时间,默认 8 小时

–proxy-write-timeout=<number>

设定 oneproxy 对后端进行写操作的超时时间,默认 8 小时

–admin-address=<host:port>

设定 oneproxy 管理接口的监听地址及端口

–admin-username=<string>

设定允许访问管理接口的用户名

–admin-password=<string>

设定允许访问管理接口的用户登陆密码

–proxy-license=<license>

针对企业版的注册码

–proxy-charset=<charset>

读写分离

–proxy-master-addresses=<host:port@servergroup>

设定 MySQL 主服务器的地址、端口号及所属集群,例如

–proxy-master-addresses=172.16.4.1:3306@cisco

–proxy-slave-addresses=<host:port@servergroup>

设定 MySQL 从服务器的地址、端口号及所属集群,例如

–proxy-slave-addresses=172.16.4.2:3306@cisco

–proxy-group-policy=<groupname:policy>

设定在一个 group 中,数据库的读写分离策略,当前 oneproxy 支持 12 种读写分离策略

支持一主多从场景的策略

master_only:读写都在 master

read_failover:读写都在 master,当 master 挂掉的时候读切到 slaves

read_slave:写在 master,读在所有 slaves

read_balance:写在 master,读从 master 以及 slaves 走

big_slave:写以及简单查询走 master,复杂查询走 slaves

big_balance:写及简单查询走 master,复杂查询走 master 及 slaves

数据分片场景的策略

write_shard:多组 master 的 shard 环境中,读写在任意 master

read_shard:一组多从的 shard 环境中,写在 master,读走其他节点

Percona XtraDB Cluster/MariaDB Galera Cluster 环境

write_balance

write_other

write_failover

双主环境

read_other

主从延迟检测

–proxy-replication-check

开启 oneproxy 的主从延迟精确检测功能,默认会在 test 库中创建一张表。原理类似 pt-heartbeat

–proxy-group-slavedelay=<servergroup:seconds>

设定在一个 group 中的 slave,在检测到复制延迟到达设置的值之后,自动剔除该节点,在延迟小于设定值时动态加入服务

–repadmin-username=<string>

设置用于主从检测的用户名

–repadmin-password=<string>

设置用于主从检测的用户名密码

 

高可用

–vip-address=<ip/dev>

在多节点 HA 环境下,设置提供服务的 VIP 地址以及 VIP 绑定的 dev

–remote-address=<host:port>

设定在 HA 环境下,设置其他节点的管理接口 IP 和管理端口

–proxy-server-id=<number>

设置 oneproxy 的 ID

性能抓取

–proxy-trans-debug

开启是否事务调试功能,帮助架构师、DBA 分析在业务运行时的各个表之间所关联的 query 和 trx 的关系

–proxy-log-sqlerror

开启记录 sql error

–proxy-sql-debug

开启 sql debug 功能

正文完
 
ddn
版权声明:本站原创文章,由 ddn 2016-06-23发表,共计2745字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。