本文分享自天翼云开发者社区《云内GSLB技术及应用场景》,作者:c****n

云业务容灾建设节奏一般是同城双活—异地双活—两地三中心(同城双活+异地多活),因为要解决的问题的复杂度和难度也是在逐步上升的,不可能一蹴而就。gslb可以实现两地三中心容灾,这时应用在多数据中心的情况下,业务需要分布式部署,无论哪个数据中心都可以独立承担业务,数据中心内通过服务器负载均衡(lb)进行数据中心内的业务负载,gslb是通过dns给lb做负载均衡,配合健康检查实现业务的故障切换,数据中心切换,一些算法如静态就近性可以就近访问加速等。

一、基本概念

1.业务域名
用户访问应用服务的dns域名。

2.服务成员
域名最后返回的ip的地址,这个ip地址一般就是slb负载均衡设备的ip。

3.地址池
一组服务成员的集合,可以选择服务成员的调度算法,健康检查,ttl等设置。用于服务成员的管理。

4.健康检查

1)服务成员健康检查

检查应用服务是否正常,常用的健康检查有icmp, tcp,udp,http等。

已icmp为例,探测设备主动去ping服务成员ip,通过是否应答来判断服务成员是否有效。

2)链路健康检查

检查数据中心内的某条链路是否健康,用icmp方法,不能进行跨数据中心的探测。

5.算法

调度的规则,二级调度,一级是域名选池,二级是池选服务成员。

常用的算法有轮询,加权轮询,静态就近性,全局可用性等。

二、应用场景

基本都是多数据中心,分布式部署,每个数据中心都有所有数据中心的配置信息,保证dns请求到哪个gslb都有同样的应答。
常见的应该场景有业务容灾,多活,就近访问加速等。
以两地三中心容灾方案为例详细说明下。

业务域名:www.aaa.com

主数据中心dc1,服务成员m1(1.1.1.1 电信),服务成员m2(1.1.1.2 联通)。

同城灾备数据中心dc2,服务成员m3(2.2.2.1 电信),服务成员m4(2.2.2.2 联通)。

异地灾备数据中心dc3,服务成员m5(3.3.3.1 电信),服务成员m6(3.3..2 联通)。

每个数据中心一台gslb设备。

正常情况下dns请求到达任何一台gslb时,应答规则

1)电信的用户返回电信的服务成员,联通的用户返回联通的服务成员,其他的用户返回电信的服务成员。

2)主数据中心的成员可用时优先用主数据中心,主数据中心服务成员故障后用同城灾备数据中心,同城灾备数据中心也故障再用异地灾备数据中心。

1.业务图

2.配置逻辑图

3.核心算法

1)静态就近性算法

根据用户源ip所在物理位置进行策略匹配。

2)静态地址库

获取用户的物理位置需要全球ip地址库,需要把ip地址库加载到内存中,然后把源ip在内存中匹配下,就可以获取到相应物理位置信息,这个地址库一般每行是代表一个地理信息,例如

前面两列是起始ip和终止ip,后面是国家,省,市,组织,运营商

3)动态用户区域

除了静态地址库设备自身携带外,也需要支持用户自定义某个网段属于哪个国家,省,市,运营商等。

这部分提供用户自定义网段属于某个物理位置配置,然后在配置静态就近性策略时去选择这个用户区域。

4.探测与同步

1)探测:

做健康检查的设备,分为服务成员探测和链路探测。

链路探测只能在本数据中心进行探测。

服务成员探测根据和同步规则可以进行跨数据中心探测。

2)同步:

正常情况下,本中心的gslb设备只对自己数据中心的服务成员做健康检查,然后把本数据中心的健康检查结果同步给其他数据中心的gslb设备,最后的结果就是每个数据中心都有所有数据中心的健康检查结果,探测设备同时也是同步设备。

3)同步规则和探测的关系:

红色线:同步

黄色线:探测

①仅本地

不管gslb设备之间的同步连接情况如何,本数据中心的gslb设备只探测本数据中心的服务成员。

②优先本地

gslb设备之间的连接正常时,本数据中心的gslb设备只探测本地。

gslb设备之间的连接异常时,本数据中心的gslb设备会探测连接异常的异地的数据中心的服务成员。

③同时多数据中心

gslb设备会向所有数据中心的服务成员发送健康检查探测,这样每个服务成员会有所有数据中心的健康检查结果,最后这个健康检查的结果为配置的有效性个数决定。
例如:设置有效性为2,m1有gslb123设备三个探测结果,综合2个或者2个以上up,则m1为up。

云内GSLB技术及应用场景的更多相关文章

  1. Docker技术这些应用场景【转】

    场景一:节省项目环境部署时间 1.单项目打包 每次部署项目到测试.生产等环境,都要部署一大堆依赖的软件.工具,而且部署期间出现问题几率很大,不经意就花费了很长时间. Docker主要理念就是环境打包部 ...

  2. 为 “超级大脑”构建支撑能力,腾讯云聚焦AI技术落地

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月24日,以"无界数据.无限智能"为主题的2018腾讯"云+未来"峰会AI大数据分论坛在广州拉开帷 ...

  3. 在线公开课 | 5G时代的视频云服务关键技术与实践

    5G时代来临在即,视频技术将会如何发展呢?基于视频云服务的技术开发又有怎样的变化呢?为此,京东云视频云产品研发部高级总监魏伟为大家做出了详细解读. 魏伟拥有10多年视频行业研发经验,先后从事于AVS标 ...

  4. 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?

    摘要:近日,华为云数据库业务总裁苏光牛在ACMUG中国MySQL用户组主办的 "华为云专场" 技术沙龙中分享了华为云数据库重磅新品GaussDB的核心能力与竞争优势.那么, Gau ...

  5. 云原生GIS技术

    云原生架构概述 - DockOne.io  http://dockone.io/article/2991 云原生GIS技术全解读 - SuperMap技术控 - CSDN博客  https://blo ...

  6. 腾讯 Techo 开发者大会首发来袭!云原生中间件技术实践等你来!

    腾讯 Techo 开发者大会是由腾讯云发起的面向全球开发者和技术爱好者的年度盛会,2019 年 11 月 6 日 - 7 日将在北京嘉里大酒店首次召开. 作为一个专注于前沿技术研讨的非商业大会,Tec ...

  7. 云搜索服务在APP搜索场景的应用

    搜索无处不在,尤其是在移动互联的今天.无论是社交,电商,还是视频等APP中,搜索都已经在其中扮演了重要的角色.作为信息的入口,搜索能帮用户从海量信息中找到想要的信息.在APP搜索的典型场景如下: ●  ...

  8. 热度3年猛增20倍,Serverless&云开发的技术架构全解析

    『 作为一个不断发展的新兴技术, Serverless 热度的制高点已然到来.』 或许,Google Trends 所显示的 3 年猛增 20 倍的" Serverless " 搜 ...

  9. 阿里云杨敬宇:边缘计算行业通识与阿里云ENS的技术演进之路

    近日,阿里云杨敬宇在CSDN阿里云核心技术竞争力在线峰会上进行了<5G基础设施-阿里云边缘计算的技术演进之路>主题演讲,针对5G时代下,行业和技术的趋势.边缘计算产业通识以及阿里云边缘计算 ...

  10. 剑指Kubernetes 揭秘腾讯云的PaaS技术选型策略

    1.前言 Kubernetes 很火,一大批互联网公司早已领先一步,搭建起专有的 PaaS平台,传统企业们看到的 Kubernetes的趋势,亦不甘落后,在试水的道上一路狂奔-- 虽然,Kuberne ...

随机推荐

  1. 答题判题程序题目集 1~3 的总结性 Blog

    前言 1.1 题目集概述 答题判题程序 - 1: 字符串解析:题目内容和答题内容都是按照特定格式给出的字符串,程序需要能正确地拆分和解析这些字符串,然后进行匹配. 对象和类的使用:为了更好地管理题目和 ...

  2. NLP语言学基础

    不同的自然语言有不同的语法结构,因此需要对语言数据进行语法解析,才能让机器更准确地学到相应的模式.而语言不同于图像,数据标注工作需要有一定的语言学知识,因此数据的整理也相对更困难.下面以英语为例(别的 ...

  3. (Python基础教程之七)Python字符串操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  4. linux bash shell 中的单引号和双引号

    摘抄自:ABS_CN 当要引用一个变量的值时,一般推荐使用双引号.使用双引号除了变量名[2]前缀($).后引符(`)和转义符(\)外,会使shell不再解释引号中其它所有的特殊字符.[3] 用双引号时 ...

  5. Kafka 1.1.1 源码编译

    下载源码 git clone -b 1.1.1 https://github.com/apache/kafka.git --depth=1   使用这样的方式下载主要是解决两个问题:其一,下载指定分支 ...

  6. JPAAS整合宝蓝德

    现在软件国产化的需求成了刚需了,因此在实施的过程中,我们整合了宝蓝德,我将过程写一下. 1.宝蓝德提供的程序包. 包名 说明 bes-actuator-spring-boot-2.x-starter- ...

  7. docker部署最新6.2版Zabbix Server端

    一.安装docker,参见本博客docker安装文档. 二.启动空的mysql -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="z ...

  8. 小程序canvas白屏解决(

    造成canvas白屏的原因(两个原因) 1. 使用网络图片经绘制,没有配置downloadfile域名 ctx.drawImage('https://img1.imgtn.bdimg.com/it/u ...

  9. Dapr-6: Dapr 状态管理构建块

    第 6 章 Dapr 状态管理构建块 The Dapr state management building block | Microsoft Docs 分布式应用程序由一组独立的服务构成.尽管每个服 ...

  10. MethodHandler 不会产生 boxing

    static int add(int a, int b){ return a + b; } @Test public void directAdd() throws Throwable { // 编译 ...