异地多活高可用架构设计( 二 )

  • 目前集团DNS解析,无法提供自动检测服务是否可用的功能,也就无法自动进行切换 。
  • 服务可用性,可以通过我们这边的多点拨测进行监控,当多点拨测不可用的时候,发送告警通知给相关人员,以便人工介入 。
  • 多点拨测告警,应该会提供两类:1、某个拨测点不通的时候 2、所有拨测点均不可用的时候 。
  • 目前集团DNS解析,TTL生效最短时间是10分钟,无法自定义TTL时间 。
  • 具体架构如下:
    异地多活高可用架构设计

    文章插图
     
     
    可以达到的效果:
    • 如果集团DNS可以提供,类似阿里云云解析的网站监控功能并能灵活设置TTL时间,这时当北京机房或者阿里云机房出现故障后,就可以在很短的时间(部分服务最大异常时间)内自动进行流量切换 。
    此处只是以阿里云云解析示例,只要能提供类似的服务均可 。
    • 如果集团DNS无法提供类似阿里云云解析的网站监控及灵活设置TTL时间的功能,则部分服务最大异常时间还是取决于DNS修改ip时间+DNS TTL时间 。
    名词解释
    什么是网站监控?
    HTTP/HTTPS实时探测域名解析记录,支持自定义端口,实时发现宕机立即告警;
    全网分布式监控,在中国各个地区模拟用户端真实请求,监控结果真实可靠;
    支持宕机暂停、容灾切换,最大限度的解决服务中断对您的业务带来的损失;
    容灾切换支持A记录、CNAME域名,满足各种场景的容灾切换需求;
    什么情况会被网站监控判断为宕机并发送告警通知?
    监控结果中,HTTP/HTTPS的返回码大于500的服务器错误情况,才会报警通知 。
    举例说明:如果设置了四个探测点 北京联通、深圳阿里巴巴、上海电信、重庆联通 。
    场景一:四个探测点中50%的监控点无法收到您服务器的响应,或50%的监控点收到返回码大于等于500时,才会判断您的网站为宕机情况 。
    场景二:四个探测点中有50%以上的探测点探测您的网站返回码是小于500的情况,则不会判断您的网站为宕机 。
    云解析DNS“流量管理”
    云解析“流量管理”可以在您设置的每条解析线路下,根据权重比例轮询返回解析结果 。当线路下的IP宕机时可以通过监控自动发现,并将宕机IP从当前线路下摘除,直到监控IP正常时会恢复解析 。同时,当一条解析线路下的所有IP都宕机时,可以切换至其他正常线路 。最大程度保证您的网站服务高可用,减小损失 。
    部分服务最大异常时间
    比如北京机房出现异常,这时转发到阿里云机房的流量是可以正常访问,只有转发到北京机房的流量是异常的 。
    这时如果使用网站监控或者类似服务,进行监控,并设置拨测间隔为1分钟,TTL生效时间为1秒,那么最多有60+1秒部分服务异常时间,之后DNS会自动把北京机房的ip自动踢掉,流量全部切到阿里云 。
    补充
    1. 一期、二期方案的实现均强依赖于集团的DNS服务
    2. 用户中心通过ip暴露的服务,一但出现机房级别的故障,一期、二期方案均无法保证该部分服务可用 。
    3. 其实除了DNS这种方案,还有一种方案就是用类似F5这种设备,作跨机房负载,但必须是gslb,而且两端必须是相同的设备 。
    小结对于,非一线互联网大厂的公司而言,是实现异地容灾的时候,借助公有云是很有必要的,比如:
    • 数据跨机房同步,可以使用阿里云的DTS(Data Transmission Service) 服务,目前DTS支持关系型数据库、NoSQL、大数据(OLAP)等数据源间的数据传输 。它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务 。

    异地多活高可用架构设计

    文章插图
     
    •  
    • 跨机房分布式数据库,可以使用OceanBase 。金融环境下通常对数据可靠性有更高的要求,OceanBase每一次事务提交,对应日志总是会在多个数据中心实时同步,并持久化 。即使是数据中心级别的灾难发生,总是可以在其他的数据中心恢复每一笔已经完成的交易,实现了真正金融级别的可靠性要求 。
    • 异地多活由于各个公司的业务、基础设施及要解决的问题皆不尽相同,所以选择适合自己的就好 。
    • 或者直接使用云数据库RDS MySQL 版

    异地多活高可用架构设计

    文章插图
     




    推荐阅读