产品中心

Product Center

神通读写分离集群


      神通数据库为证用户能够7×24小时不间断的访问数据,提供了基于日志传输复制技术的读写分离集群管理系统。

      采用日志传输技术的集群方案是通过在多台神通数据库服务器间进行日志传输来实现数据的高可用性,各节点之间的数据在物理上是完全独立的。正常情况下,数据库主服务器(即Master)以活动服务器的身份对外提供数据访问服务,同时数据库备份服务器(即Slave)获取主服务器上的更新日志与主服务器保持数据同步。如果主服务器发生故障,备份服务器推选出新的主服务器并继续对外提供服务。在故障服务器被修复后,原主服务器仍可以备用服务器身份继续进行与主服务器进行日志同步工作。

      神通读写分离集群系统支持最多九个节点,各节点的地位都是平等的,在系统启动时多个节点之间推选出一个节点作为Master,其它节点作为Slave,Master和Slave之间通过心跳检测来监控集群系统的健康状态。在神通读写分离集群系统正常工作状态下,Master及时将自己产生的日志同步到Slave,以保证主备之间的数据一致性,用户对Master所作的任何更新操作,都会在Slave上得到体现。如果Slave长时间收不到Master的心跳信息,将会在集群节点之间发起选举操作,选出新的Master,并继续对用户提供数据服务,而这种切换对于用户而言是基本透明的。如果Slave端发生故障,而Master仍处于活动状态时,只要故障节点小于集群节点总数的二分之一,集群系统仍继续对外提供数据服务,对用户不会产生任何影响,只需DBA及时对Slave进行故障排除即可。

       神通读写分离集群系统中的备机是可读的,在此基础上提供了读写分离功能。一方面用户可以直接连接备机执行只读查询操作,另一方面也可以通过驱动进行读写分离:驱动自动对用户执行的SQL语句进行读写分类,将写操作发送到主机执行,将只读操作发送到备机执行,驱动按照一定的算法进行负载均衡,以达到提升系统整体性能的目的。


一、方案技术原理

       神通读写分离集群为了保障数据库真正的高可用,将节点分为同步组和异步组,同步组中的节点能通过日志同步实时反应数据变化,在Master中的操作,必须在同步组中的Salver节点都执行成功后才返回;异步组中Slave节点数据不实时的从Master节点同步,会定期的做同步。

      集群启动时,会从同步组中的节点中随机选举一个正常节点作为Master节点;当Master节点故障时,会从同步组中的节点中随机选举一个正常节点作为Master节点;异步组节点因无法做到实时同步,不允许作为Master节点运行。




二、方案技术特点


高可用性

      神通读写分离集群中同步组中配置了多个节点,且都处于运行状态,Master故障下能实现秒级切换,切换时间都在6秒以下。

读写分离

       神通读写分离集群基于事务级别的读写分离方案,如果事务中只有读操作,通过驱动分发器将事务分发到Slave节点中执行;如果事务中写操作,通过驱动分发器将事务分发到Master节点中执行;如果事务中开始是读,后续有写操作,则将开始的读操作分发到Slave节点中执行,直到写操作后,该事务中的所有SQL将在Master节点中执行;对于无法识别读写类型的,将发送到Master节点中执行;对于将写事务识别为度事务时,先在Slave节点中执行,执行错误,发现有写操作,将自动返回在Master节点中重新执行。

负载均衡

      神通读写分离集群中所有的Slave节点用于读操作,当我们读取操作较多时,驱动分发器将通过分发算法,将读操作均衡分布在所有正确的Slave节点中执行,降低Master节点读写冲突,通过Slave节点负载均衡,提高查询性能。

在线扩展

      当Slave节点出现加大压力导致性能下降时,神通读写分离集群可以在线增加Slave节点,增加的Slave节点会自动被集群所识别,然后进行日志同步,读操作负载均衡。

性能提升

      在读比例比较大的应用系统中,同步部署神通读写分离集群,能大大的提升数据库的响应能力,比如:应用系统中的读操作占了70%,则通过部署3个节点的读写分离,能将数据库的整体性能(事务吞吐量)提高2倍以上;随着读操作的比例越高,性能提升倍数约趋向于节点数。