前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Consul测试的几点补充

关于Consul测试的几点补充

作者头像
jeanron100
发布2019-08-08 16:29:53
7140
发布2019-08-08 16:29:53
举报

这是学习笔记的第 2060 篇文章

最近在完善Consul相关的一些高可用方向的升级,目前是基于MHA+Consul的方案,对于Consul方面算是做一些普及和推广,而对于MHA则是处于保守的维护状态,相信不久就会使用orch来做替代。

当然前提是一些版本规划能够统一,而且是与时俱进,在此补充几点关于service_name测试的一些建议。

首先对于线上业务来说,要做高可用升级,基本上对于服务的影响是非常短暂的,对于很多应用来说,从业务的闪断到升级完成,这个过程需要大概是1-2秒钟,可以理解这种发布是可持续的,而如果要完整模拟MHA的故障过程,需要的时间是远大于2秒的,所以对于有些业务来说,就难以接受了,所以我设想了如下的一些改进方案。

1)首先业务方需要对基于Consul的域名服务进行连接性测试,这种情况下可以直接使用最新配置的域名服务,做一些业务侧的验证和测试,如果要做升级,则可以理解在业务低峰期直接做切换测试,然后测试验证无误后切换到线上服务。

2)而如果对一些业务优先级较高的业务,做在线切换是不现实的,也即上面所说的闪断会大于2秒以上,则可以使用平行的业务测试来进行对接。 比如我们搭建一套平行的环境,端口配置不同,则可以和业务方进行对接测试,测试的时候使用的都是新的端口,这样我们可以在线上真实的模拟服务的切换情况,而等待测试完成之后,则将环境重置,恢复原来的端口和服务配置,这可以理解是一种配置的平滑切换,是目前较为折中的测试方案。

3)在线升级服务,有了基于域名的服务之后,保证应用重连机制,那么我们可以对MySQL服务做在线升级,比如与时俱进,把服务的版本从5.7.16升级到5.7.26,而整个切换的过程时间是在1秒钟左右,对于业务几乎无感知。

4)在第3步的基础之上,我们可以开启新的服务的MGR特性,然后重新构建新的MGR secondary节点,这样我们就可以快速的把MySQL服务从原本的MHA切换到了MGR,前提是应用的基础配置满足(比如表要有主键等,节点在同机房内)

5)在满足一些基础业务的前提下,对已有的读请求做负载均衡,可以配置同样的域名服务,挂载多个读节点,由consul实现负载均衡。

6)对于域名的使用,对于很多业务来说,其实会有更高的要求,我们可以借助ACL实现这种Consul API服务,即应用端可以通过接口的方式来得到对应的数据库服务IP信息,而应用端本身是有连接池的配置,在应用端需要时可以进行轮询获得相应的信息,这样一来应用一来的就不是单纯的域名服务,而是对这两类服务做了解耦,当然从这个层面来看,对于应用端的逻辑改造会有一定的代码量,但是收益也是巨大的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档