IIS负载均衡

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 春节将至,在此祝愿各位园友春节愉快!新年大吉!万事如意!!!   在大型Web应用系统中,由于请求的数据量过大以及并发的因素,导致Web系统会出现宕机的现象,解决这一类问题的方法我个人觉得主要在以下几个方面: 1.IIS 负载均衡。

春节将至,在此祝愿各位园友春节愉快!新年大吉!万事如意!!!

 

在大型Web应用系统中,由于请求的数据量过大以及并发的因素,导致Web系统会出现宕机的现象,解决这一类问题的方法我个人觉得主要在以下几个方面:

1.IIS 负载均衡。

2.数据库 负载均衡。

3.系统架构优化,比如报表服务器和应用服务器分开等。

本文主要介绍以下IIS负载均衡的实现方法,作者也是慢慢摸索的,如有不当之处还请各位大神指点以下,以求共同进步!!

 

演示环境介绍:

Server 1: 18.13 (用来分流的IIS服务器)。

Server 2: 18.49 (用来分流的IIS服务器)。

Server 3: 50.32 (用户所访问的服务器)。

 用来演示的网站:一个名为WebTest的网站,内容就是一张图片,足以达到演示效果。

安装Server Farms ,如下图所示:

整个安装步骤非常简单,跟着提示走即可,安装完成之后在IIS里面可以看到Server Farms的项目了,如下图所示:

 

现在我们通过Server Farms 来创建Server,如下图所示:

有多少个IIS服务器就创建多少个,我这里创建了2个,创建完成之后可以在“运行状态测试”中进行测试,如下:

Server Farms判断目标IIS服务器是否正常,是通过目标服务器里面的某一个文件返回的数据来判断的,具体配置如下所示,health.txt是用来作为验证的一个文件,里面的内容是OK,那么如果这个文件返回的数据是OK,Server Farms则会判断该服务器为正常状态,反之则不正常:

 

 

对于如何去平衡服务器的压力,Server Farms已经提供了一些算法,具体如截图所示,这里不做详细的介绍,大家有兴趣的话可以逐个测试一下,

 

两台IIS服务器验证成功,说明我们的配置是正确的,下一步我们来测试一下:我直接访问50.32服务器,这个时候呈现出来的页面是18.49这个服务器上面的图片。

 

 

OK,现在我将18.49这台服务器的IIS停止掉,如下图所示:

 

当18.49这台服务器的IIS停止以后,我们再次查看Server Farms里面的服务器状态,如下图所示:

 

当18.49挂了之后,我们再次访问50.32服务器,结果出来了:

 

结论:当配置了多台IIS服务器之后,根据我们定义的均衡规则和算法,它会自动为我们协调和分配当前的请求来达到分流的目的,上面的演示中,当18.49无法访问的时候,自动贝切换到了18.13服务器。

PS:虽然是不同的服务器,呈现出来不同的内容,这里我是为了便于查看效果,所以采用的不同的图片来显示,不然不容易区分。

 

 

有一个待解决的问题:不知道Session如何处理?欢迎讨论。

 

如果您觉得对您有用,烦请帮顶,感谢!!

 

如需转载,请注明出处,感谢!!

 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
8月前
|
人工智能 大数据 网络性能优化
构建超大带宽、超高性能及稳定可观测的全球互联网络
本次课程聚焦构建超大带宽、超高性能及稳定可观测的全球互联网络。首先介绍全球互联网络的功能与应用场景,涵盖云企业网、转发路由器等产品。接着探讨AI时代下全球互联网络面临的挑战,如大规模带宽需求、超低时延、极致稳定性和全面可观测性,并分享相应的解决方案,包括升级转发路由器、基于时延的流量调度和增强网络稳定性。最后宣布降价措施,降低数据与算力连接成本,助力企业全球化发展。
|
Java 关系型数据库 数据库
Spring Boot多数据源及事务管理:概念与实战
【4月更文挑战第29天】在复杂的企业级应用中,经常需要访问和管理多个数据源。Spring Boot通过灵活的配置和强大的框架支持,可以轻松实现多数据源的整合及事务管理。本篇博客将探讨如何在Spring Boot中配置多数据源,并详细介绍事务管理的策略和实践。
1206 3
|
JSON 数据格式 Python
TypeError the JSON object must be str, bytes or bytearray, not ‘list‘
TypeError the JSON object must be str, bytes or bytearray, not ‘list‘
348 1
|
运维 负载均衡 前端开发
微服务和分布式的联系与区别什么?
微服务和分布式的联系与区别什么?
1081 0
|
Python
pychram中提示:Process finished with exit code 0
"Process finished with exit code 0" 是PyCharm中的提示信息,表示程序已经成功地执行完毕并且没有发生任何错误。在PyCharm中,当程序正常终止并返回退出代码0时,这个消息会在控制台中显示。 在PyCharm中运行程序时,它会在一个单独的进程中执行,当程序完成执行后,它会向操作系统返回一个退出代码。退出代码0表示程序成功执行完毕,而非零的退出代码通常表示错误或异常终止。 当出现"Process finished with exit code 0"的提示时,意味着你的程序已经成功地执行完毕,没有发生任何错误或异常情况。你可以通过检查程序输出或任何其他预
2665 0
|
Java
Java:使用hutool工具类UrlBuilder、urlQuery构建url查询参数
Java:使用hutool工具类UrlBuilder、urlQuery构建url查询参数
971 0
|
Dubbo 应用服务中间件 Android开发
Eclipse配置Duubbo xsd
Eclipse配置Duubbo xsd
Eclipse配置Duubbo xsd
|
NoSQL 关系型数据库 MySQL
108个Python精选库,建议收藏留用!
108个Python精选库,建议收藏留用!
259 0
108个Python精选库,建议收藏留用!
|
前端开发 应用服务中间件 JavaScript
Session管理之超时设置和强制下线
关于Session,在Java Web开发中,为我们提供了很多方便,Session是由浏览器和服务器之间维护的。好吧,闲话不多说,下面让我们一步一步来实现它们。
1886 0
|
Linux 数据安全/隐私保护 数据库管理