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

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

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

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

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

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

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

什么是正向代理?

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

什么是反向代理?

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

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

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

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

写WebApi程序

[Route("api/[controller]")]
public class HomeController : Controller
{
    // GET: api/<controller>
    [HttpGet,Route("GetUserChat")]
    public async Task<ActionResult> GetUserChat()
    {
        var collection = new MongoHelper().GetCollection<OAChat>("OAChat");
        ).Limit().ToListAsync();
        return ApiJsonFormat.GetJsonResult(chatItems);
    }
}

返回结果

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

//设置ARR

192.168.99.5 //代理服务器
192.168.99.6 //目的服务器
192.168.99.7 //目的服务器
192.168.99.8 //目的服务器
192.168.99.10 //目的服务器
192.168.99.11 //目的服务器
192.168.99.12 //目的服务器
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. 柯塔娜(Cortana):从科幻虚构到真实人生

    依照商业法理.7月29日.随着Win10公布的东风."小娜"与"小冰"两姊妹相会于中国北京. 在"小娜"眼中,"小冰"仅 ...

  2. tomcat加入系统服务+开机自启

    1.首先将tomcat/bin 下的catalina.sh复制到目录/etc/init.d中,并修改名称为tomcat [root@iZ2318 ~]# sudo cp /usr/local/tomc ...

  3. Python的下划线_

    1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,"_"代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准C ...

  4. 「mysql优化专题」视图应用竟然还可以这么优化?不得不收藏(8)

    一.视图概述(技术文): (1)什么是视图? 视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段.视图并不在数据 ...

  5. iOS框架搭建(MVC,自定义TabBar)--微博搭建为例

    项目搭建 1.新建一个微博的项目,去掉屏幕旋转 2.设置屏幕方向-->只有竖向 3.使用代码构建UI,不使用storyboard 4.配置图标AppIcon和LaunchImage 将微博资料的 ...

  6. [置顶] android ListView包含Checkbox滑动时状态改变

    题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...

  7. ArcGIS API for JavaScript 中的数据类型【vs】GPServer的数据类型

    熟悉GPServer的同学肯定知道,GPServer在10.1的ArcMap后需要执行成功一次才能发布. 发布GPServer,可以是ArcMap的工具箱的工具,也可以是自己写的模型. 不管是ArcM ...

  8. 百度文库的实现——java利用openoffice,批量word转pdf

    百度文库的主要功能就是将上传的word文档,转码成pdf格式再展示出来.其中有四种方法可以实现这样的操作: 方法一:用apache pio 读取doc文件,然后转成html文件用Jsoup格式化htm ...

  9. Hello TensorFlow 二 (GPU)

    官方说明:https://www.tensorflow.org/install/ 环境: 操作系统 :Windows 10 家庭中文版 处理器 : Intel(R) Core(TM) i7-7700 ...

  10. MongoDB数据库详解

    第1章 数据库管理系统 1.1 前言 01.数据的定义:文字.图像.地理位置信息(坐标.经纬度)等 02.数据库管理系统的定义:建立.存取和管理数据,保证数据安全和完整性的软件 03.常见的数据库管理 ...