载均衡有很多种方法,有硬件负载均衡,软件负载均衡,还可以从域名解析下手。

不过,今天只讲软件负载均衡

软件负载均衡一般分两种,从网络协议来讲(tcp/ip),主要集中在第四层和第七层进行负载均衡。

第四层就是基于IP进行负载均衡。后面还有一篇文章讲这个。

第七层就是应用层。比如各种的WEB服务器。今天就讲讲IIS的负载均衡。

第七层的Web负载均衡,很多web服务器都支持,比如IIS,Nginx,apache等。现在主要讲一下windosw下IIS如何使用负载均衡

IIS使用ARR反向代理,实现负载均衡

什么是正向代理?

代理服务器大家可能听说过,比如我们说的“科学上网”。就是使用代理服务器,请求经过代理服务器转到目的服务器。这是一个正向代理。用户知道自己使用代理,并且充许用户隐藏客户端自身。

什么是反向代理?

请求同样经过代理服务器转到目的服务器,目的服务器返回给代理服器,代理返回给客户端。不同的时候,客户并不知道,访问的是一个代理服务器。客户认为他在访问目的服务器。

两者的区别基本在于,正向代理是发生在客户端。反向代理是发生在服务端。

首先,我们先安装一个Web平台安装程序

打开web平台安装程序,搜索arr

写WebApi程序

  1. [Route("api/[controller]")]
  2. public class HomeController : Controller
  3. {
  4. // GET: api/<controller>
  5. [HttpGet,Route("GetUserChat")]
  6. public async Task<ActionResult> GetUserChat()
  7. {
  8. var collection = new MongoHelper().GetCollection<OAChat>("OAChat");
  9. ).Limit().ToListAsync();
  10. return ApiJsonFormat.GetJsonResult(chatItems);
  11. }
  12. }

返回结果

  1. {,,,,,,,,,,,,,,,,,,,,,"Members":[],"CreateTime":"2017-06-29 18:05:34","LastChatTime":null,"LastChatText":null,"IsDisbanded":false}]}

//设置ARR

  1. 192.168.99.5 //代理服务器
  2. 192.168.99.6 //目的服务器
  3. 192.168.99.7 //目的服务器
  4. 192.168.99.8 //目的服务器
  5. 192.168.99.10 //目的服务器
  6. 192.168.99.11 //目的服务器
  7. 192.168.99.12 //目的服务器
  8. 192.168.99.13 //目的服务器

首先给服务器安装net core 运行环境

DotNetCore.2.0.5-WindowsHosting 安装包内置SDK和WindowsHosting,直接安装这个,安装成功之后,要重启服务器才能生效。然后部署Web就可以访问了

选择无托管代码

好,部署成功之后,可以正常访问了

好,马上试一下部署ARR,是否能实现反向代理

非常简单数据出来啦。理论就搭建成功了。、

192.168.99.5 的站点,还有两个地方要注意设置

IIS程序池的队列长度。由于这是代理服务器很多请求都会经过这个站点,所以这个长度就设置长一点。默认值是1000。

IIS程序池的闲置超时。设置为0,将长期保持不回收状态。

转化服务器的网卡要目的服务器的网卡要好,这样能支撑更大的流量需求。

下面把一些细节介绍一下,然后做一下压力测试,就大功告成啦。

安装ARR完成之后,会出现两个

URL重写充许你定则重写规则,我没怎么用过,特么不嫌麻烦。这就不细讲了。

Server Farms可以对你的集群进行管理,健康检查,转化统计。

分别对应的是:缓存,健康检查,负载均衡,监视和管理,代理,路由规则,服务器相关性

健康检查:主要是检查各个服务器的IIS是否正常运作。(这个也是第七层负载均衡的一个好处,能感知Web服务器是否正常运作)

负载均衡:主要作用是设置各种分发规则。比如根据权重,最小响应时间,最小请求量等

监视和管理:主要让你看到各个服务器的健康情况,请求量,失败量,缓存命中率等。

服务器相关性:主要提供一种服务器和客户端之间的粘性。简单理解就是,客户端A的请求分配到服务器B处理之后,以后客户端A的请求都分配到服务器B处理。(这样设计理论会使用分配不均,当然也有好处,比如可以使用本地session)

  • Client Affinity: 根据客户端的cookies处理粘性
  • Host Name Affinity 根据Host name处理粘性

下面试一下压力测试,用大微软的VS2017进行压力测试,细节我就不讲了,贴了一些结果吧。

在测试过的过程中,经常现一个502.3 Timeout Errors的问题,是ARR3.0的问题,换回ARR2.0 版本之后,就正常了。

启动性能监视器,统计每秒请求数,也与压力测试的结果吻合。每秒358次。

ARR测试到止结束,下班。

windows第七层负载均衡--基于IIS的ARR负载均衡的更多相关文章

  1. windows第四层负载均衡--基于NLB负载均衡

    上面有一篇文章说windows第七层负载均衡,这次讲讲第四层负载均衡 TCP/IP协议族,第七层是应用层,第四层是传输层.第四层负载均衡主要通过IP进行转化. 一些优秀的第四层负载均衡软件,速度可以接 ...

  2. [转载]基于LVS的AAA负载均衡架构实践

    摘要 本次分享将从一次实际的负载均衡改造案例出发,通过介绍项目背景.选型思路.测试方法和问题分析等方面展开,总结负载均衡架构的一般套路和经验教训. 一.背景 项目背景是某企业的AAA管理系统, AAA ...

  3. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  4. Windows Azure支持七层负载均衡--Application Gateway

    一直以来Windows Azure的负载均衡(Loadbalancer)功能一直被客户诟病,无法其竞争对手(特别是国内的云厂商)匹敌. Windows Azure的负载均衡器是四层的,前期的版本不支持 ...

  5. 第十五章 nginx七层负载均衡

    一.Nginx负载均衡 1.为什么做负载均衡 当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台Web服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到 ...

  6. linux负载均衡总结性说明(四层负载/七层负载)

    在常规运维工作中,经常会运用到负载均衡服务.负载均衡分为四层负载和七层负载,那么这两者之间有什么不同?废话不多说,详解如下: 一,什么是负载均衡1)负载均衡(Load Balance)建立在现有网络结 ...

  7. 七层负载均衡——HAProxy

    HAProxy入门 HAProxy是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的.借助HAProxy可以快速并且可靠的提供基于TCP ...

  8. 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

    一.四层与七层负载均衡在原理上的区别 图示: 四层负载均衡与七层负载均衡在工作原理上的简单区别如下图: 概述: 1.四层负载均衡工作在OSI模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和 ...

  9. Web负载均衡学习笔记之四层和七层负载均衡的区别

    0x00 简介 简单理解四层和七层负载均衡: ① 所谓四层就是基于IP+端口的负载均衡:七层就是基于URL等应用层信息的负载均衡:同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡. ...

随机推荐

  1. 二、springcloud Netflix 注册中心

    Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现.也是springcloud体系中最重要最核心的组 ...

  2. 【Web性能进阶】1.无线网络基础

    一.无所不在的连接 针对不通的使用场景,无线网络技术有很多种. 鉴于无线网络技术如此多样,笼统地概括所有无线网络的性能优化手段是不可能的.好在大多数无线技术的原理都是相通的,衡量性能的指标和约束条件也 ...

  3. IOC容器在web容器中初始化——(一)两种配置方式

    参考文章http://blog.csdn.net/liuganggao/article/details/44083817,http://blog.csdn.net/u013185616/article ...

  4. rsync 指定端口拷贝

    rsync -aP -e 'ssh -p 2288' ssh-audit.dat 172.18.18.31:/opt/freesvr/audit/sshgw-audit/sbin

  5. 开源框架SmartImageView的使用

    1.SmartImageView为一个网络图片框架,可以将一个网络URL的图片展示在UI上 2.SmartImageView使用 @1Github上下载源代码 @2拷贝原码到工程src下 @3布局配置 ...

  6. StringUtils工具类常用方法

    前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...

  7. mentohust 使用

    可使用帮助命令 mentohust -h 或着查看 https://wenku.baidu.com/view/95c08019ff00bed5b9f31d1a.html

  8. 点分治X2

    1.聪聪可可 点分治板子 然而想那个 t1[1]*t1[2]*2+t1[0]*t1[0]想了好久 就是最基本的组合方法 毕竟(2,5)和(5,2)可是要算两次的 画画图就好了 (不要像我一样盯着大佬们 ...

  9. 深入JS原型与原型链

    要了解原型和原型链,首先要理解普通对象和函数对象. 一.普通对象和函数对象的区别 在Javascript的世界里,全都是对象,而对象之间也是存在区别,我们首先区分一下普通对象和函数对象,如下代码: f ...

  10. Linux下防火墙配置

    查看防火墙的状态:/etc/init.d/iptables  status  或  service  iptables  status 1) 临时生效,重启后复原 开启: service  iptab ...