当前位置:网站首页>全局负载均衡实现原理
全局负载均衡实现原理
2022-06-21 18:54:00 【51CTO】
作者:天翼云 邓捷
本文关键词:全局负载均衡、DNS、健康探测
引言:
全局负载均衡是指对分别放置在不同的地理位置的服务器群间作负载均衡。 服务器负载均衡是指对本地的服务器群做负载均衡。全局负载均衡主要用于在多个区域拥有自己的服务器站点,使全球用户只以一个IP地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度。全局负载均衡能够对放置在不同地理位置的服务器群间作负载均衡。可帮助企业服务实现不同地理位置的高并发负载均摊、用户访问就近接入、服务故障自动隔离或异地灾备等功能。
一、全局负载均衡实现了什么?

1、全局负载均衡是基于DNS实现的一套负载均衡系统,系统具备基本的域名解析功能,通过用户请求的域名,响应经过负载策略计算后的ip地址给客户端。
2、客户端访问www.test.com的网站时,浏览器首先通过DNS查询,将域名转换为IP地址,然后再通过IP地址访问实际的网站服务器,完成网页的请求。
二、如何将域名DNS请求接入到全局负载均衡服务
通常DNS权威服务器可以采用两种方式将域名的请求引导至另一个DNS权威服务器。
1、第一种方式是通过NS记录子域授权的方式,将整个子域名授权到其他DNS权威服务器,比如设置www.test.com的ns记录为ns1.gslb.ctyun.cn和ns2.gslb.ctyun.cn。
2、第二种方式是通过CNAME记录的方式,设置www.test.com的CNAME记录指向xxxxx.gslb.ctyun.cn(开通全局负载均衡产品服务后,系统自动分配地址)。
三、全局负载均衡业务层整体原理图

1、负载均衡组件
全局负载均衡主要由Auth-DNS组件、GSLB组件、monitor组件组成。各自负责的功能如下:
Auth-DNS模块:基于DNS协议实现的简化版权威DNS服务器,只提供A记录和AAAA记录的DNS请求服务。
GSLB模块:根据用户创建的各种负载均衡策略、pool池负载均衡算法、和IP健康状态选择合适的IP地址返回给用户。
monitor模块:探测pool池内ip地址健康状态。
2、域名DNS请求流程
a) Auth-DNS组件接收用户请求
终端用户通过浏览器访问域名时,本地DNS会将域名解析请求发送到DNS递归服务器(如114.114.114.114),然后经过DNS递归服务器的迭代请求,最终会将域名解析请求发送到全局负载均衡服务的Auth-DNS组件;
Auth-DNS组件接收DNS请求后,根据RFC1035、RFC2671、RFC7871等相关DNS协议进行解析。获取DNS请求中的源IP地址、域名和请求类型,在获取源IP地址时,优先使用edns-client-subnet协议携带的用户真实IP地址。
b) GSLB组件选择合适的IP地址响应用户请求
第一步:通过域名,查找用户开通的GSLB实例。
第二步:根据GSLB实例可以查询到所有关联的访问策略,其中访问策略主要作用是将地域信息或运营商信息与pool池相关联。根据用户的真实IP地址,可以选择出符合条件的访问策略policy。并开始尝试使用所有匹配的访问策略policy所关联的pool地址池响应用户请求。
在系统中访问策略policy具有优先级属性,优先使用优先级别高的访问策略应答用户请求,优先级由高到低实例:
电信-西南-四川 > 中国-西南-四川 > 电信-西南 > 中国-西南 > 电信 > 中国 > 全局
第三步:资源池可以选择具体的负载均衡算法类型,包括轮询、加权轮询、哈希、随机、优先级。通过具体的负载均衡算法尝试在pool地址池内选择一个健康的IP地址响应用户DNS请求。
如果pool池内所有IP地址均为非健康,系统会尝试选择pool地址池指向的回退池(另一个pool地址池)进行IP地址选择,选择逻辑与第三步一致。如果还是不能找到合适的IP地址,系统会尝试使用其他访问策略从第二部重新开始获取IP地址。
第四步:将选择的IP地址结果,通过Auth-DNS组件,封装DNS响应消息体,应答DNS请求。
c) monitor组件对pool池中的IP地址进行健康探测
monitor组件支持icmp、udp、tcp、http、https健康检测方式,每一种健康检测具备各自的用户自定义参数,比如间隔时间、超时时间等信息。monitor组件会根据用户配置的检测信息,对pool池内的IP地址进行健康检测,并将检测结果实时返回给GSLB组件。
monitor组件在全国多个地点部署探测服务,各个探测节点独立运行,具备各自的探测数据;系统会收集所有探测节点的健康探测结果,目前版本采用多数原则决定IP地址是否健康,当认为IP地址健康的节点数大于认为IP地址非健康的节点数量时,将IP地址设置为健康状态。反之设置为非健康。
四、总结
全局负载均衡主要基于DNS技术,在提供域名解析服务的同时,增加根据客户端访问的源IP地址选择就近的服务器IP地址响应请求的能力。并且全局负载均衡系统提供用户资源池IP地址健康探测功能,能够对IP地址进行多种方式的健康检测,对异常的IP地址进
边栏推荐
- How MySQL sums columns
- 大魚吃小魚小遊戲完整版
- Harbor高可用集群设计及部署(实操+视频),基于离线安装方式
- Flink CDC MongoDB Connector 的实现原理和使用实践
- 函子(Functor)
- Snake game project full version
- pfSense配置TINC站點至站點隧道教程
- Is it possible to update some fields through flinksql?
- IAR major upgrade, support vs code, St release the first sensor with processing unit
- RPA financial process automation | Shanghai Pudong Development Group and cloud expansion technology accelerate financial digital operation
猜你喜欢

What statements are added to MySQL

BTC投资者损失预计达73亿美元!“割肉式”抛售来袭?加密寒冬比预期更冷、更长!

Implementation principle and application practice of Flink CDC mongodb connector

Resttemplate multiple authentication information authorization

IAR major upgrade, support vs code, St release the first sensor with processing unit
《跟老卫学 HarmonyOS 开发》:以父之名·码力全开!写段HarmonyOS祝父亲节

粗读Targeted Supervised Contrastive Learning for Long-Tailed Recognition

自然语言处理如何实现聊天机器人?

RPA financial process automation | Shanghai Pudong Development Group and cloud expansion technology accelerate financial digital operation

Servlet usage
随机推荐
什么比国内现货白银更有优势?
我是一个线程(修订版)
pfSense配置TINC站點至站點隧道教程
Goldfish rhca memoirs: do447ansible tower navigation
TX9116同步升压ic
零售数字化起锚阶段,更多地关注的是如何借助数字化的手段对流量进行挖掘和转化
如何使用Memcached实现Django项目缓存
Point cloud to depth map: conversion, saving, visualization
Software testing office tools recommendation - Desktop Calendar
Comment MySQL additionne les colonnes
大魚吃小魚小遊戲完整版
亿腾医药在港招股书第三次“失效”:上市实质延后,红杉等为股东
RPA financial process automation | Shanghai Pudong Development Group and cloud expansion technology accelerate financial digital operation
Sd6.20 summary of intensive training
贪吃蛇游戏项目完整版
[wechat applet] collaboration and publishing data binding
Snake game project full version
XR34082A高效率升压DC/DC调整器IC
运维监控数据可视化-让数据自己会说话[华汇数据]
《跟老卫学 HarmonyOS 开发》:以父之名·码力全开!写段HarmonyOS祝父亲节