应用负载均衡基本原理解析(二)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

在第一部分中,我们从网络层面深度解析了负载均衡的本质,这一部分中我们将从应用的角度来分析负载均衡的多种关键技术。

 再来回顾一下我们在第一部分中的这幅图:

 

问题1、如果10.0.0.2不可达或者80端口服务不可用,怎么办?难道被分到这台服务器上的用户就该倒霉吗?

问题2、为何172.16.0.1的用户请求会被分配到10.0.0.2上,172.16.0.2的用户请求会被分配到10.0.0.3上?

 

以上两个问题分别涉及到负载均衡里两个基本的关键词:健康状态检测和负载均衡算法。

我们这部分主要分析健康状态检测原理。

健康状态检测是负载均衡设备的一个最基本的机制,它能确认某台服务器上的应用是否正常,如果确认不正常,则会把这台机器排除在可用来进行分发的服务器资源之外,这样就能避免出现将客户请求分发到不能正常工作的服务器上,从而导致用户访问失败。

如何才能正确判断应用的健康状态呢?

我们假设对一个运行web服务的服务器进行健康状态检测,分别以从浅到深的方式去检查:

A、 ICMP协议的方式进行探测,看能ping通服务器的IP地址

诚然,如果正常状态下能ping通服务器,当某个时刻ping不通以后,说明链路出现故障或者服务器死机,这个时候判断应用不可用是没有问题的,但是,能ping通应用就一定正常吗?假设服务器网络正常,但是web服务的软件出现问题,导致对80端口的请求都不响应的时候,即便能ping通,但是分配到这台服务器上的请求也无法正常访问应用。所以,看来能ping通不代表业务就正常啊。

B、 TCP协议3次握手的方式来检查80端口是否响应。

这种方式相对第一种方式,就要进步得多了。即便是能ping通,但是如果和应用的80端口无法建立3TCP握手,则说明该服务器上应用不正常,这种方式在很大程度上避免了服务进程问题导致的不响应用户请求的问题。但是,这样就一定保险吗?假设web应用的80端口是打开的,可以响应TCP方式的探测,但是想必大家经常遇到一种情况,打开网页的时候,却看到“HTTP 404 未找到…..。这种提示就说明服务进程是正常的,但是网页文件可能不正常,比如被误删除之类。所以,只靠TCP的检测方式也不能完全感知应用的健康程度。

C、 http的方式来检测80端口是否正常。

   这种方式相对前2种来说,就要更加可靠了。默认设置下设备会对应用服务器的80端口模拟一个httpGET /的请求,通过设备响应的页面是否包含完整的headerbody等关键元素来判断web应用是否健康,这种方式在通常情况下已经可以满足相当一部分用户对应用健康状态检测的需求了。但是,在某些情况下,这种方式依旧有局限。我们假设这种情况,如果这个web服务是一个门户网站,当我们直接访问首页的时候可以正常打开,而输入用户名、密码以后回车,却仍旧看到“HTTP 404未找到”,所以这个时候光靠GET /的方式来检测就不够了。通过定制http的检测方式,可以通过GET指定页面,使用指定的usernamepassword登录,并指定登录以后页面包含的关键字这一系列的操作来完成深度的健康检测。

 

上面案例是以web应用为例,在现实环境中,客户的应用种类是多种多样,所以设备需要能够争对各种应用均衡做到应用级别的检测才行,以下是一些常见应用及需要的检测方式:

Radius服务:设备应能够模拟一个radius的认证请求,请求中包含一个合法的用户名和

             密码,在检测应用的时候,如果Radius服务器返回验证通过的请求,则

             说明服务状态正常;如果返回不通过或者不返回信息,则说明不正常。

LDAP服务:  设备应能够模拟一个LDAP的认证请求,请求中包含一个合法的用户名和

             密码,在检测应用的时候,如果LDAP服务器返回验证通过的请求,则

             说明服务状态正常;如果返回不通过或者不返回信息,则说明不正常。

FTP服务:   设备应能够模拟一个FTP的认证请求,请求中包含一个合法的用户名和

             密码,在检测应用的时候,如果FTP服务器返回验证通过的请求,则

             说明服务状态正常;如果返回不通过或者不返回信息,则说明不正常。

   POP3服务:  设备应能够模拟一个POP3的认证请求,请求中包含一个合法的用户名和

             密码,在检测应用的时候,如果POP3服务器返回验证通过的请求,则

             说明服务状态正常;如果返回不通过或者不返回信息,则说明不正常。

 

   同理,一些常见服务,比如SMTPRSTPSIPNTPIMAPSNMPDNSHTTPSUDPcompound等都应该能够内置支持。除了这些内置的健康状态以外,设备最好能够支持外部的健康检测方式,比如通过编写脚本来实现我们需要的健康状态检测。例如,争对TFTP的访问原理,我们编写了一个外部健康检查程序,判断是否能从服务器取回指定的文件:

 

          #! /bin/bash

    server=$1

    file=$1".txt"

    if [ -f $file ] ; then

    rm -f $file

    fi

    tftp $server << END

    get $file

    quit

    END

 

    #! /bin/bash          

           

    if test "$HM_SRV_IPADDR" == "" ; then             

    echo "Please check ENV Var 'HM_SRV_IPADDR'"             

    exit 1             

    fi                                                                      

    server=$HM_SRV_IPADDR                                                                

    file=$server".txt"            

    /tftp_getfile.sh $server                                     

    grep  "test" $file                            

    exit $?

 

通过以上脚本,我们可以在tftp服务器上,通过获取指定的文件,以获取的结果成功或者失败来达到深度检测应用健康状态的问题,而不是只是简单的通过UDP协议方式去检测。

 

通过以上内部内置的检测方式和灵活的外部检测方式,我们可以实现争对客户特定应用进行深度定制的健康状态检测方式。

 

(待续)

t.d.


本文转自 virtualadc 51CTO博客,原文链接:http://blog.51cto.com/virtualadc/671182


 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
5月前
|
机器学习/深度学习 文字识别 监控
安全监控系统:技术架构与应用解析
该系统采用模块化设计,集成了行为识别、视频监控、人脸识别、危险区域检测、异常事件检测、日志追溯及消息推送等功能,并可选配OCR识别模块。基于深度学习与开源技术栈(如TensorFlow、OpenCV),系统具备高精度、低延迟特点,支持实时分析儿童行为、监测危险区域、识别异常事件,并将结果推送给教师或家长。同时兼容主流硬件,支持本地化推理与分布式处理,确保可靠性与扩展性,为幼儿园安全管理提供全面解决方案。
236 3
|
5月前
|
弹性计算 负载均衡 网络协议
阿里云SLB深度解析:从流量分发到架构优化的技术实践
本文深入探讨了阿里云负载均衡服务(SLB)的核心技术与应用场景,从流量分配到架构创新全面解析其价值。SLB不仅是简单的流量分发工具,更是支撑高并发、保障系统稳定性的智能中枢。文章涵盖四层与七层负载均衡原理、弹性伸缩引擎、智能DNS解析等核心技术,并结合电商大促、微服务灰度发布等实战场景提供实施指南。同时,针对性能调优与安全防护,分享连接复用优化、DDoS防御及零信任架构集成的实践经验,助力企业构建面向未来的弹性架构。
457 76
|
6月前
|
人工智能 API 开发者
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
290 27
|
6月前
|
供应链 项目管理 容器
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
在当今快速变化的商业环境中,对象管理组织(OMG)推出了三种强大的建模标准:BPMN(业务流程模型和符号)、CMMN(案例管理模型和符号)和DMN(决策模型和符号)。它们分别适用于结构化流程管理、动态案例处理和规则驱动的决策制定,并能相互协作,覆盖更广泛的业务场景。BPMN通过直观符号绘制固定流程;CMMN灵活管理不确定的案例;DMN以表格形式定义清晰的决策规则。三者结合可优化企业效率与灵活性。 [阅读更多](https://example.com/blog)
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
|
6月前
|
传感器 人工智能 监控
反向寻车系统怎么做?基本原理与系统组成解析
本文通过反向寻车系统的核心组成部分与技术分析,阐述反向寻车系统的工作原理,适用于适用于商场停车场、医院停车场及火车站停车场等。如需获取智慧停车场反向寻车技术方案前往文章最下方获取,如有项目合作及技术交流欢迎私信作者。
409 2
|
6月前
|
存储 弹性计算 安全
阿里云服务器ECS通用型规格族解析:实例规格、性能基准与场景化应用指南
作为ECS产品矩阵中的核心序列,通用型规格族以均衡的计算、内存、网络和存储性能著称,覆盖从基础应用到高性能计算的广泛场景。通用型规格族属于独享型云服务器,实例采用固定CPU调度模式,实例的每个CPU绑定到一个物理CPU超线程,实例间无CPU资源争抢,实例计算性能稳定且有严格的SLA保证,在性能上会更加稳定,高负载情况下也不会出现资源争夺现象。本文将深度解析阿里云ECS通用型规格族的技术架构、实例规格特性、最新价格政策及典型应用场景,为云计算选型提供参考。
|
6月前
|
数据采集 机器学习/深度学习 存储
可穿戴设备如何重塑医疗健康:技术解析与应用实战
可穿戴设备如何重塑医疗健康:技术解析与应用实战
216 4
|
6月前
|
人工智能 自然语言处理 算法
DeepSeek大模型在客服系统中的应用场景解析
在数字化浪潮下,客户服务领域正经历深刻变革,AI技术成为提升服务效能与体验的关键。DeepSeek大模型凭借自然语言处理、语音交互及多模态技术,显著优化客服流程,提升用户满意度。它通过智能问答、多轮对话引导、多模态语音客服和情绪监测等功能,革新服务模式,实现高效应答与精准分析,推动人机协作,为企业和客户创造更大价值。
582 5
|
6月前
|
机器学习/深度学习 JSON 算法
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析
|
6月前
|
负载均衡 JavaScript 前端开发
分片上传技术全解析:原理、优势与应用(含简单实现源码)
分片上传通过将大文件分割成多个小的片段或块,然后并行或顺序地上传这些片段,从而提高上传效率和可靠性,特别适用于大文件的上传场景,尤其是在网络环境不佳时,分片上传能有效提高上传体验。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

相关实验场景

更多

推荐镜像

更多
  • DNS