系列目录:

本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。

本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。

Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关。

Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET(C#)编程语言项目集成:应用中心。

Taurus.MVC 微服务框架 入门开发教程:项目集成:3、客户端:其它编程语言项目集成:应用中心。

Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。

Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务的二次开发。

Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。

Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。

Taurus.MVC 微服务框架 入门开发教程:架构演进:1、从单应用程序简单过渡到负载均衡。

Taurus.MVC 微服务框架 入门开发教程:架构演进:2、负载均到模块拆分负载。

Taurus.MVC 微服务框架 入门开发教程:架构演进:3、模块拆分负载到多级负载均衡。

前言:

本篇教程讲述:用Taurus.MVC 微服务架构的方式,如何来进行系统版本的升级。

下面看具体教程:

1、全功能版本升级:

比如,开发了个站点,通过引入Taurus.MVC 微服务后,初步部署成负载均衡模式,并且开了N个Web应用程序节点。

Web应用中心站点:当前V1版本:appsettings.json 微服务配置内容大体如下:

{
"AppSettings": { "MicroService.Client.Name": "www.a.com",//绑定域名
"MicroService.Client.RegUrl": "http://localhost:80",//注册中心地址
"MicroService.Client.Version": 1,//这里可以指定版本号,没默认配置号时,默认版本号为0 "MicroService.App.RunUrl": "http://localhost:0",
}
}

Web应用中心站点:如今,要发布V2版本,具体操作如下:

1、修改微服务配置文件,提升版本号。
2、发布新版本到服务器任意目录。 

3、启动项目(N次)产生节点。

Web应用中心站点:新版本V2:appsettings.json 微服务配置内容大体如下:

{
"AppSettings": { "MicroService.Client.Name": "www.a.com",//绑定域名
"MicroService.Client.RegUrl": "http://localhost:80",//注册中心地址
"MicroService.Client.Version": 2,//这里可以指定版本号,没配置号时,默认版本号为0 "MicroService.App.RunUrl": "http://localhost:0",
}
}

和旧版本相比,仅是修改了版本号。

升级机制与过程说明:

1、如果版本号>原有版本号(无配置即默认0),那么将启动滑动升级。

2、滑动升级过程:

A:每启动一个新版本节点,会注销一个旧节点;
B:每个节点每次注册【5-10】秒,也会注销一个旧节点。 简而言之:如果原有10个节点,那么 1、连续开启10个新版本节点,即可逐个替换掉旧的10个节点。 2、若仅开启1个节点,每5-10秒注销一个旧节点,注销掉10个节点需要50-100秒。

补充说明:

升级后,原有程序仅是不再收到请求,并未退出程序。

如果仅是测试新版本是否可用:

可保持和原有的版本号一致:

1、直接运行即可加入负载均衡中,获得流量测试。

2、绑定其它域名,引导独立测试域名的流量进行测试。

2、指定模块版本升级:

还是原来的架构图,这里补上了节点的请求网址:

当前,系统仅对会员模块进行修改升级,并需要发布该版本。

传统方式:
按照全站升级模式,一个模块的修改,需要进行全站测试,谁也不清楚会不会影响到其它模块。

Taurus.MVC 微服务框架,提供了模块版本升级的方式:

如今,要发布仅针对会员模块升级的V2版本,具体操作如下:

1、修改微服务配置文件,仅提升会员模块版本号

2、发布新版本到服务器任意目录。
3、启动项目(N次)产生节点。

新版本V2:appsettings.json 配置如下:

{
"AppSettings": { "MicroService.Client.Name": "www.a.com,member|2",//绑定域名,绑定会员模块(指定版本号为2)
"MicroService.Client.RegUrl": "http://localhost:80",
   "MicroService.Client.Version": 1,

   "MicroService.App.RunUrl": "http://localhost:0",
}
}

流程和全量升级几乎一样,唯一不同的是配置,指定了模块拦截。

然后启动程序(节点)N次即可。

特别说明:

1、V1版本:仅配置了域名,版本号是1,没有模块存在时,框架会默认追回模块通配符"*",因此所有模块版本号也是:1。

2、V2版本:仍配置域名为1,避免之前的失效,再通过优先级“|”符号指定:member版本号为2。

因此,仅将请求路径为member的会员模块,拦截转发到新版本V2版本,其它模块请求,依旧回到原有版本上。

总结:

对于Taurus.MVC 微服务框架而言,部署和升级都相当简单:

部署就是把程序往上一扔,然后就启动N次的问题。

升级也是把程序往上一扔,然后就启动N次的问题。

特别是局域模块的升级方式,使得全站向模块化部署的过渡,是那么的丝滑与自然,史无前例,细思极恐啊!

Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。的更多相关文章

  1. Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  2. Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  3. Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  4. Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET Core(C#)项目集成:应用中心。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  5. Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  6. Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  7. Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

  8. Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

  9. Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

随机推荐

  1. [NOI2011]阿狸打字机

    题意:一开始是个空串s,有三种操作:(1.末尾加一个字符 2.末尾减一个字符 3.存储该字符串) 思路: 一开始在trie树上动态加点很好处理,3操作的时候记录一下此时trie树上的pos,同时记录d ...

  2. .NET C#基础(4):属性 - 本质是方法

    0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍C#中属性的属性.定义.使用方法以及特殊性. 1. 阅读基础   理解C#基本语法(定义类及类成员,调用方法)   认可OOP的封 ...

  3. 如何优化PlantUML流程图(时序图)

    这篇文章用来介绍,如何画出好看的流程图. 1. 选择合适的组件 1.1 plantuml官方提供的组件 1.2 加载图片 1.2.1 加载本地图片 1.2.2 加载网络图片 1.2.3 图片资源 2. ...

  4. c++(qt)播放wav文件的四种方式

    //方法一(要符合RIFF规范) 1 QSound::play("E:/Projects/报警声1-1.wav"); //方法二(要符合RIFF规范) 1 QSoundEffect ...

  5. c# 通过反射,字符串 转换 类

    eg:已经知道字符串 "userInfo"是一个表名,并且在代码中也有自己的userInfo类,如何把这个字符串"userInfo" 转换成类, "u ...

  6. Golang并发编程——goroutine、channel、sync

    并发与并行 并发和并行是有区别的,并发不等于并行. 并发 两个或多个事件在同一时间不同时间间隔发生.对应在Go中,就是指多个 goroutine 在单个CPU上的交替运行. 并行 两个或者多个事件在同 ...

  7. 循环控制-break语句和continue语句

    break关键字的用法有常见的两种: 1.可以用switch语句当中,一旦执行,整个switch语句立刻结束 2.还可以用在循环语句当中,一定执行,整个循环语句立刻结束,打断循环 关于循环的选择,有一 ...

  8. 洛谷 P1714 切蛋糕 单调队列

    这个题比较显然,要用前缀和来做.但只用前缀和是过不去的,会TLE,所以需要进行优化. 对于每个前缀和数组 b 中的元素,都可以找到以 b[i] 结尾的子段最大值 p[i],显然,最终的 ans 就是 ...

  9. 一题多解,ASP.NET Core应用启动初始化的N种方案[下篇]

    [接上篇]"天下大势,分久必合,合久必分",ASP.NET应用通过GenericWebHostService这个承载服务被整合到基于IHostBuilder/IHost的服务承载系 ...

  10. 攻防世界MISC进阶区--39、40、47

    39.MISCall 得到无类型文件,010 Editor打开,文件头是BZH,该后缀为zip,打开,得到无类型文件,再改后缀为zip,得到一个git一个flag.txt 将git拖入kali中,在g ...