oneproxy检测主从复制同步延迟-阿里云开发者社区

开发者社区> 技术小甜> 正文

oneproxy检测主从复制同步延迟

简介:
+关注继续查看

Q:为什么要实现读写分离延迟检测?


A:就好比你在ATM机存钱,你老婆收到短信后乐呵呵的拿网银APP查看,结果钱没过来。其实钱已经到账了,只是查询的ATM机节点钱还没过来。所以我们dba要监控数据,一旦发现钱没有复制到另一ATM机节点,会强制你从存钱的那个ATM机节点去查看。


读写分离可以通过php yii框架、java mybatis框架实现,但主从复制的延迟检测一直是重难点,OneProxy内部支持主从复制延迟检测的功能,主要通过如下两种方式进行实现。


  1. 通过检测从库的Seconds_Behind_Master参数的值来实现。这也是OneProxy检测主从同步复制延迟的默认方式,在后台中可以看到延迟的Seconds,超过设定的延迟时间,OneProxy会停止向延迟从库分发流量(已经过测试)。

wKiom1WKIA-TBqYUAAVYSnWZB6s732.jpg


2.OneProxy自己建立一张table,每秒进行update,来检测同步复制延迟,很像Percona的pt-heartbeat工作 原理(pt-heartbeat通过真实的复制数据来确认mysql复制延迟,这个避免了对复制机制的依赖,从而能得出准确的落后复制时间,包含两部分: 第一部分在主上pt-heartbeat的–update线程会在指定的时间间隔更新一个时间戳,第二部分是pt-heartbeat的–monitor 线程或者–check线程连接到从上检查复制的心跳记录(前面更新的时间戳),并和当前系统时间进行比较,得出时间的差异。) 超过设定的延迟时间,OneProxy会停止向延迟从库分发流量(已经过测试)。

表名:oneproxy_replication_check

wKioL1WKIfHQO3ObAALoorb4oz4400.jpg


可以通过控制SQL,加上/* master */来强制走主库,例如涉及到金额的查询。


注:采用中间件的好处是前段代码改动小。


如下图所示:

wKiom1WKIKDhuCBBAALSjuEmfIs785.jpg















本文转自hcymysql51CTO博客,原文链接: http://blog.51cto.com/hcymysql/1664963,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
4146 0
iOS 性能检测新方式​——AnimationHitches
iOS 性能检测新方式​——AnimationHitches
42 0
ASP.NET中检测含有中文字符串的实际长度
以下就是在ASP.NET中检测含有中文字符串的实际长度,这个可能在很多地方都用的上.        VB.NET的写法:    Function StrLength(Byval Str As String) As Integer      Dim En As ASCIIEncoding=New ASCIIEncoding ()    Dim B As Byte()=En.
531 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4615 0
Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor
原文:Sql性能检测工具:Sql server profiler和优化工具:Database Engine Tuning Advisor 一、工具概要     数据库应用系统性能低下,需要对其进行优化,     如果不知道问题出在哪里,可以使用性能检测工具sql server profiler。
1660 0
[Linux 性能检测工具]VMSTAT
VMSTAT NAME:          Vmstat: 报告虚拟内存统计 语法 :        vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]        vmstat [-s] [-n] [-S unit]       ...
709 0
+关注
7199
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载