文章转自:http://card.weibo.com/article/h5/s#cid=1001603863326047255626&vid=&extparam=&from=&wm=0&ip=182.50.119.226


现在都讲求无单点的架构,OneProxy也不例外,虽然已经有进程级别的自动重起机制(--keepalive),那还要防机器级别的故障,如果客户端程序无法配置多个IP地址,进行多个IP地址的自动切换和重试,虚拟IP机制(简称VIP)就是一个很好的解决方案。通常在一个MySQL集群里,会使用PaceMaker、Corosync等多个集群组件来实现VIP机制,使用HAProxy加两个VIP地址来实现读写分离,平民架构追求极简的架构,觉得这一套机制过于复杂,从应用到MySQL后端之间的中间环境太多,不利于运营维护。

OneProxy可以替换HAProxy进行协议级的转发,对外只提供一个IP地址也能实现读写分离,并且支持到后端MySQL的长连接,与HAProxy相比有极大的优势。增加内置的VIP机制后,不需要依赖外部的任何集群软件,就可以实现VIP机制,以防OneProxy机器单点故障。

假设两台OneProxy机器上的网卡名称为“eth0”,那么只需要在两台机器上起动OneProxy的命令中新增一个参数“--vip-address=VIP地址/eth0:0”就可以了,OneProxy会自动检测VIP地址,如果一台机器重起,另一台机器会在1-2秒内自动接管VIP地址,确保系统高可用,完全省去了多个复杂的集群软件的安全和配置。

VIP配置对专业的数据库管理员(称简DBA)或系统管理员(简称SA)来讲也许不是问题,但很多创业企业是业务开发人员在兼管系统维护的事情,这时用OneProxy就会方便许多。