OneProxy for MySQL可以复用不同应用到后端数据库的连接,有效降低数据库的并发连接数;可以即时踢除不可用的节点,将应用请求转发到其他可用节点,保证业务服务的稳定性。 可透明地将查询语句分发到多个MySQL备库执行,用读写分离方案支持上千万的并发访问;也可以根据SQL语句中的值进行分库分表路由, 均匀分散到多个MySQL主库上,以支持每秒上百万个小事务的并发执行;可实时透明地分析流量数据,统计SQL和事务的运行时间,分析事务的结构,得到各种不同维度的实时性能报告; 还可以进行流理QoS控制,作为数据库防火墙抵挡SQL注入式攻击;根据分片的SQL并行执行,解决了大数据量下的汇总统计性能问题;跨多分片的结果集合并, 极大地简化了应用程序的开发工作量。

第一步  下载与安装

平民软件官网地址:  http://www.onexsoft.com

选择下载数据库中间件,如下图:

下载后解压到软件统一的目录后, 修改 demo.sh  oneproxy.service 中的路径。

第二步  配置读写分离

OneProxy的读写分离配置主要是conf文件夹中的 proxy.conf

[oneproxy]
# 持久化操作,开启后将双进程互备
keepalive                  = 1
# 自动调整节点类型
proxy-auto-readonly        = 1
# 线程数
event-threads              = 32
# 对外显示的mysql版本
mysql-version              = 5.6.38
# 客户端连接的地址
proxy-address              = 0.0.0.0:3308
# web监控 信息展示地址
proxy-httpserver           = 0.0.0.0:8080
# 读写分离的模式
# read-slave master不参与读
# read-balance master 参与读
proxy-group-policy         = xiaobai:read-balance
# 设置主数据库地址
proxy-master-addresses.1   = 10.0.0.173:3306@xiaobai
# 设置从数据库地址
proxy-slave-addresses.2    = 10.0.0.198:3306@xiaobai
# 设置数据库用户地址 
proxy-user-list.1          = root/64D8D7645E6A121DA732C9F7A12A4CBE261467BA@xiaobai
proxy-user-list.2          = root_for_one/64D8D7645E6A121DA732C9F7A12A4CBE261467BA@one
proxy-user-list.3          = root_for_proxy/64D8D7645E6A121DA732C9F7A12A4CBE261467BA@proxy

用户地址可以设置多个, 每个用户针对不同的库,这样可以实现多个库的读写分离。

需要注意的是: proxy.conf中配置的数据库密码是加密后的, 加密当前密码的方式为:

在oneproxy的bin目录中,有个mysqlpwd命令, 通过 ./mysqlpwd xxxx 可以得到加密后的密码

全部配置完成后,可以通过 ./oneproxy.service start 启动读写分离, 可以查看进程和端口判断是否启动成功

第三步 测试读写分离

将两个库的表内容设置为不一样的,在客户端上 访问 搭建oneproxy服务的3308端口,多次执行select 查看内容是否有变化

至此,读写分离搭建成功,据官方文档说明, oneproxy还有分表分库的功能,目前我这边还用不到,等有时间了,可以好好研究研究

OneProxy实现mysql读写分离的更多相关文章

  1. 利用oneproxy实现mysql读写分离搭建笔记

      功能: 1.具有SQL白名单(防SQL注入)及IP白名单功能的SQL防火墙软件 2.数据库故障切换 3.读写分离 4.分库分表     一.下载 官网下载:http://www.onexsoft. ...

  2. 使用Amoeba实现mysql读写分离机制

    Amoeba的实用指南 http://docs.hexnova.com/amoeba/ 如何实现mysql读写分离 : 通常来说有两种方式: 1,应用程序层实现 2,中间件层实现 应用层实现 应用层实 ...

  3. mysql读写分离(PHP类)

    mysql读写分离(PHP类) 博客分类: php mysql   自己实现了php的读写分离,并且不用修改程序 优点:实现了读写分离,不依赖服务器硬件配置,并且都是可以配置read服务器,无限扩展 ...

  4. amoeba实现MySQL读写分离

    amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...

  5. PHP代码实现MySQL读写分离

    关于MySQL的读写分离有几种方法:中间件,Mysql驱动层,代码控制 关于中间件和Mysql驱动层实现Mysql读写分离的方法,今天暂不做研究, 这里主要写一点简单的代码来实现由PHP代码控制MyS ...

  6. 转:Mysql读写分离实现的三种方式

    1 程序修改mysql操作类可以参考PHP实现的Mysql读写分离,阿权开始的本项目,以php程序解决此需求.优点:直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配缺点:自 ...

  7. 使用Atlas实现MySQL读写分离+MySQL-(Master-Slave)配置

    参考博文: MySQL-(Master-Slave)配置  本人按照博友北在北方的配置已成功  我使用的是 mysql5.6.27版本. 使用Atlas实现MySQL读写分离 数据切分——Atlas读 ...

  8. MySQL读写分离技术

    1.简介 当今MySQL使用相当广泛,随着用户的增多以及数据量的增大,高并发随之而来.然而我们有很多办法可以缓解数据库的压力.分布式数据库.负载均衡.读写分离.增加缓存服务器等等.这里我们将采用读写分 ...

  9. php实现MySQL读写分离

    MySQL读写分离有好几种方式 MySQL中间件 MySQL驱动层 代码控制 关于 中间件 和 驱动层的方式这里不做深究  暂且简单介绍下 如何通过PHP代码来控制MySQL读写分离 我们都知道 &q ...

随机推荐

  1. oracle数据update后怎么恢复到以前的数据

    http://blog.csdn.net/itdada/article/details/52746392

  2. Daily Scrum (2015/10/30)

    据组员们反映其他组都会有休息时间,所以我和PM讨论把每周5晚上作为日常休息时间,这一天组员们自由阅读.

  3. Bag类课后作业

    20162316 Bag课后作业 下面小标题都是码云链接 实现代码 import java.util.Arrays; public class Bag implements BagInterface ...

  4. YQCB冲刺周第五天

    站立会议: 任务看板: 今天的任务为依旧为将用户记录的数据添加到数据库中,以及金额球的设置. 遇到的问题为金额球在jsp页面的显示.

  5. C++:new&delete

    一.new的浅析 在C++中,new主要由三种形式:new operator.operator new和placement new • new operator new operator即一些C++书 ...

  6. 超级迷宫之NABCD

    模式之一:双人模式 N:基于双人之间的竞争与协作,朋友之间可以有一个竞争比赛,一决高下,男女朋友之间适合双人协作模式,共同完成游戏. A:双人竞争模式为双人同起点或不同起点来进行游戏,在竞争的紧张压力 ...

  7. C++自学随笔

    主要学习内容: 了解了IDE环境的含义 C++与C的区别: 新的数据类型:bool型 新的初始化方法:直接初始化int x(1024) 经过查找,了解了直接初始化与复制初始化的区别:"当用于 ...

  8. 【Coursera】高斯混合模型

    一.高斯混合模型 软分类算法,即对每一个样本,计算其属于各个分布的概率,概率值最大的就是这个样本所属的分类. 对于训练样本的分布,看成为多个高斯分布加权得到的.其中每个高斯分布即为某一特定的类. 高斯 ...

  9. HttpContext.Current.Server.MapPath("/") 未将对象设置到对象的实例异常。

    多线程中的System.Web.HttpContext.Current.Server.MapPath("/") 多线程中Server.MapPath会失效... 网上找到几种解决方 ...

  10. Prim's Algorithm & Kruskal's algorithm

    1. Problem These two algorithm are all used to find a minimum spanning tree for a weighted undirecte ...