使用内网DNS探测,缓解上述问题:
(1)使用内网域名连接数据库,例如:db.kg.org;
(2)主库1和主库2设置双主同步,不使用相同虚IP,而是分别使用ip1和ip2;
(3)一开始db.kg.org指向ip1;
(4)用一个小脚本轮询探测ip1主库的连通性;
(5)当ip1主库发生异常时,脚本delay一个x秒的延时,等待主库2同步完数据之后,再将db.kg.org解析到ip2;
(6)应用程序以内网域名进行重连,即可自动连接到ip2主库,并保证了数据的一致性;
画外音:本质上,这是一个可用性与一致性的折衷 。
总结
MySQL主库高可用,主库一致性,一些小技巧:
(1)双主同步是一种常见的保证写库高可用的方式;
(2)设置相同步长,不同初始值,可以避免auto increment生成冲突主键;
(3)不依赖数据库,业务调用方自己生成全局唯一ID是一个好方法;
(4)双主保证写库高可用,只有一个写库提供服务,并不能完全保证一致性;
(5)内网DNS探测,可以实现在主库1出现问题后,延时一个时间,再进行主库切换,以保证数据一致性,但牺牲了几秒钟的高可用;
希望大家有收获,谢转 。
来源公众号:架构师之路
作者:沈剑
推荐阅读
- 地球上的水是怎么来的? 地球上面的水是怎么来的
- 教师|想上岸入编找到理想工作,该如何选择单位?随我一起来看看吧!
- 普洱茶才是高手,才是好的普洱茶
- 红茶能和柠檬起泡吗,勿忘我可以和玫瑰花起泡吗
- MyBatis插件-慢sql耗时监控插件
- 6个MySQL GUI工具,数据库管理必备
- 最新天文学重大发现 我国集中发现591颗高速星
- 世界上最小的牛品种 世界上最大的最重的牛
- 我国的国家标志包括哪些?
- 最毒的蜜蜂十大毒蜂 世界上最毒的蜂