系列目录:

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

本系列第一篇: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. STM32启动文件

    一.复位电路 在了解启动文件之前需要明白STM32的复位中断流程,STM32的复位分为上电复位和手动复位,复位的电路图如下所示: 注意: 图中的复位电路是低电平复位,有的MCU是高电平复位. 上电复位 ...

  2. HYPERMESH-NASTRAN梁的方向与偏置

    Nastran关于梁的定义 我们知道,在定义梁单元时,一般需要定义单元的方向,或者说是单元的局部坐标系.对于Nastran内CBAR单元来说,梁轴向为X方向,我们需要给出向量\(\overrighta ...

  3. 一个全新的Vue拖拽特性实现:“调整尺寸”部分

    关于拖拽 CabloyJS提供了完备的拖拽特性,可以实现移动和调整尺寸两大类功能,这里对调整尺寸的开发进行阐述 关于移动的开发,请参见:拖拽:移动 演示 开发步骤 下面以模块test-party为例, ...

  4. Linux系列之安装JDK

    卸载open jdk #查看jdk [root@localhost tools]# rpm -qa | grep jdk java-1.8.0-openjdk-headless-1.8.0.65-3. ...

  5. 使用 content-visibility 优化渲染性能

    最近在业务中实际使用 content-visibility 进了一些渲染性能的优化. 这是一个比较新且有强大功能的属性.本文将带领大家深入理解一番. 何为 content-visibility? co ...

  6. 高性能 Jsonpath 框架,Snack3 3.2.29 发布

    Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表示,ONode也 ...

  7. vue大型电商项目尚品汇(后台篇)day03

    今天把平台属性的管理基本完成了,后台管理做到现在基本也开始熟悉,确实就是对ElementUI的一个熟练程度. 一.平台属性管理 1.动态展示数据 先把接口弄好,应该在第三级标题选择后进行发请求 静态页 ...

  8. 利用XtraDiagram.DiagramControl进行流程图形的绘制和控制

    DevExpress提供了一个比较强大的图形绘制工具,可以用于绘制各种图形,如流程图.组织机构图等等,本篇随笔介绍XtraDiagram.DiagramControl的使用,以及利用代码对其属性进行控 ...

  9. linux安装源码包指定安装目录

    当下载完一个源码包并且解压后 文件夹下会有一个重要的文件configure configure 文件是一个可执行的脚本文件,它将检查目标系统的配置和可用功能,比如一些检查依赖或者启用禁用一些模块,它有 ...

  10. SAP BPC 开发日记

    1.获取维度模型的方法1 DATA:i_appset_id TYPE uj_appset_id,     i_appl_id   TYPE uj_appl_id.i_appset_id = 'SINO ...