我们对框架功能作了简述,演示视频请点击 这里查看 ,若需要查看更多此框架的技术文章,请关注.NET框架学苑公众号!

本章节,我们专门讲解一下,如何在Window服务器下,设计高可用的框架。

我们的框架设计采用的是Window版本的服务端设计:

整体框架图如下,

为什么我们需要如此设计?

本文仅简述NLB与ARR的利与弊,更多技术文章往后推出。

我们引入NLB,相对于ARR来说,ARR是应用级别的负载均衡方案,ARR只能做请求入口的分发服务,而NLB则是服务器级别的负载均衡方案。

如果微软的这两款方案我们结合起来使用,即可搭建高可用网站方案。

Application Request Route与NLB高可用方案的演进

1、Application Request Route方案,如下图

缺点:

ARR可以检测到你的iis应用是否可用,并对用户的请求实施负载均衡方案,根据我们配置的负载均衡算法,把用户的请求分发到应用服务器中。

但是,如果我们的ARR服务器down掉之后,我们的整个应用程序就无法使用,达不到24*7用不宕机的高可用要求。

2、NLB的网路负载平衡方案

缺点:

NLB可以最多可以配置32台服务器,这32台服务器通过拥有自己的独立ip之外,还共有一个虚拟IP,用户访问虚拟ip,nlb集群根据配置的负载算法来确定把用户的请求分发给那台应用服务器,如果一台NLB服务器down掉,则不会影响消息的分发可达到7*24小时不down机的高可用方案。

但是,NLB不能检测应用你的iis网站是否down掉,只能检测服务器是否down掉,这样一来,如果你的iis网站已经停止啦,nlb还给分发用户请求,那样麻烦可就来啦。

那么我们使用微软的技术怎么样做到网站的高可用呢?对,就是NLB+Application Request Route .

3、NLB+Application Request Route 方案

优点:用户请求虚拟ip,接入nlb,nlb检测一台可用的服务器,请求转发给arr,arr检测可用的网站把用户请求给分派处理,形成高可用方案。

框架设计预研中,灵感来源参考文献:https://cnblogs.com/knowledgesea/p/5157565.html

经过综合分析后,我们最终采用了NLB+ARR的结合,形成如下设计图

对于此框架的设计(优点与缺点),元芳,您怎么看?欢迎扫右上方二维码,关注公众号,留言吐槽。

.NET开发框架(三)-高可用服务器端设计的更多相关文章

  1. 高可用服务设计之二:Rate limiting 限流与降级

    <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <nginx限制 ...

  2. 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

    设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...

  3. Docker Kubernetes 高可用架构设计

    Docker Kubernetes 高可用架构设计 官方方案:保证master端不发生单点故障. 官方使用一台Load Balancer负载均衡代理3台master端,终端与etcd与work Nod ...

  4. 从MySQL高可用引出对高可用架构设计的一些思考

    高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 假设系统一直能够提供服务,我们说系统的可用性是100%.如果 ...

  5. 从mysql高可用架构看高可用架构设计

    高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 假设系统一直能够提供服务,我们说系统的可用性是100%.如果 ...

  6. Redis 高可用架构设计(转载)

    转载自:https://mp.weixin.qq.com/s?__biz=MzA3NDcyMTQyNQ==&mid=2649263292&idx=1&sn=b170390684 ...

  7. 【MySQL高可用架构设计】(一)-- mysql复制功能介绍

    一. 介绍 Mysql的复制功能是构建基于SQL数据库的大规模高性能应用的基础,主要用于分担主数据库的读负载,同时也为高可用.灾难恢复.备份等工作提供了更多的选择. 二.为什么要使用mysql复制功能 ...

  8. Redis的高并发、持久化、高可用架构设计

    就是如果你用redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了,redis高可用 我这里会选用我之前讲解 ...

  9. ZEGO音视频服务的高可用架构设计与运营

    前言: ZEGO 即构科技作为一家实时音视频的提供商,系统稳定性直接影响用户的主观体验,如何保障服务高可用且用户体验最优是行业面临的挑战,本文结合实际业务场景进行思考,介绍 ZEGO 即构在高可用架构 ...

随机推荐

  1. uwp - 获取当前屏幕宽高/应用宽高

    原文:uwp - 获取当前屏幕宽高/应用宽高 public static Size GetScreen() { var applicationView = ApplicationView.GetFor ...

  2. Jconsole使用实例解说

    Jconsole是jdk自带的一套java虚拟机执行状况监视器,它能够用来监控虚拟机的内存,线程,cpu使用情况以及相关的java进程相关的MBean,主界面例如以下: 图1 怎样连接被监控的Java ...

  3. Matlab Tricks(二十五) —— 二维图像的 shuffle

    比如对于 mnist (手写字符图像),每幅图像的像素点为 28*28,所以有: perm = randperm(28*28); % 重排列 mnist.train_images = reshape( ...

  4. XDEBUG+PHPSTORM 开发 调试

    原文:XDEBUG+PHPSTORM 开发 调试 XDEBUG+PHPSTORM 开发 调试 在我们开发过程中.我们如果经常性的echo.dump效率很低.所以我们就可以使用xdebug进行断点调试. ...

  5. linux_无秘登录问题(不生效)

    1 . 登录1,执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对: cd .ssh 后 执行 ll 2 .把 id_rsa.pub 追加到授权的 key 里面去. ...

  6. spring boot 集成mybatis报错Missing artifact

    1. pom文件中的oracle依赖提示Missing artifact,需要手动下载并导入maven参考 oracle依赖下载地址 (ojdbc6.jar) cd到下载的ojdbc6.jar所在路径 ...

  7. Emgu-WPF学习使用-中值模糊

    原文:Emgu-WPF学习使用-中值模糊 实现效果: 实现途径: 前提:Image File-> System.Drawing.Bitmap->Image<Bgr, byte> ...

  8. c# WebApi POST请求同时包含数据及其文件

    原因:创建.net WebApi的接口API.IIS作为服务端.安卓作为客户端发送json文件及其文件. Android端使用xUtils3.0实现文件上传 java代码: //要传递给服务器的jso ...

  9. Delphi I/O Errors(几百种不同的错误)

    The following are the Windows API (and former DOS) IO errors, which are also the IO errors often ret ...

  10. C# XML 去xmlns:xsd和xmlns:xsi属性

    public static XElement WithoutNamespaces(this XElement element) { if (element == null) return null; ...