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


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

    前方:

    开源地址:GitHub - cyq1162/Taurus.MVC: Taurus.mvc is a high-performance mvc and webapi framework for asp.net or asp.net core(适合场景:对性能和并发有较高要求的电商、站点、WebAPI等系统,支持.Net Core,V3.0版本以上自带微服务功能)

    上篇文章介绍过:工业制造行业的低代码开发平台思维架构图

    规划中涉及到了微服务,近些天经过努力和不断的代码与反复压力测试,终于出来一个简单的稳定版本了。

    Taurus.MVC 微服务框架说明:

    1、框架自带集成了以下功能:

    1、服务端:网关、注册中心
    
    2、客户端:微服务应用程序。

    因此,即可以做为服务端运行,也可以做为客户端运行,下面进行简单演示:

    新建空项目,引入Taurus.MVC微服务框架

    1、新建一个任意空Web项目,以NET6为示例,在Nuget上引用Taurus.MVC,这里引入每2个的NETCore版本。

    2、Program.cs 手动添加启动代码:

    var builder = WebApplication.CreateBuilder(args);
    builder.WebHost.UseUrls(CYQ.Data.AppConfig.GetApp("Host"));//启动端口外置到配置文件。
    builder.Services.AddHttpContext();//必要1
    builder.Services.Configure(x => x.AllowSynchronousIO = true).Configure(x => x.AllowSynchronousIO = true);//必要2:开启同步IO读取,对POST请求有用到。
    
    var app = builder.Build();
    app.UseHttpContext();//必要3
    app.UseTaurusMvc(app.Environment);//必要4
    app.Run();

    补充说明:如果是.net framework 版本,引用时默认会在web.config自动生成以下启动配置:

    
      
        
          
        
        
      
      
        
          
          
        
      
    

    1、注册中心:配置成为注册中心

    appsettings.json 配置项:

    {
      "AppSettings": {
        "MicroService.Server.Name": "RegCenter",//设置为服务端运行的:注册中心
    
        "MicroService.App.RunUrl": "http://localhost:9000",//设置启动的运行地址,可触发默认微服务启动。
    
    
        "Host": "http://*:9000"
      }
    }

    发布运行,即成为注册中心(也具备网关功能)

    看到第一二行有输出信息即为成功。

    注册中心故障转移:

    复制一份注册中心的程序,修改端口,再补上指向主地址的配置即可:

    "MicroService.Server.RegUrl": "http://localhost:9000",//注册中心地址

    2、网关:配置成为网关

    这里将发布后的项目,复制一份,改一下配置文件:

    {
      "AppSettings": {
        "MicroService.Server.Name": "Gateway",//服务名称
        "MicroService.Server.RegUrl": "http://localhost:9000",//注册中心地址
    
        "MicroService.App.RunUrl": "http://localhost:9001",
        "Host": "http://*:9001"
      }
    }

    运行,即成为网关中心

    看到第一二行输出,即为成功,并间隔性从注册中心读取服务列表。 

    3、微服务应用

    复制一份项目做为微服务应用,直接使用Taurus.MVC的WebAPI功能添加一个Hello的控制器。

    进行客户端应用配置:

    {
      "AppSettings": {
    
        //控制器所在的程序集名称
        "Taurus.Controllers": "WebAPI",
    
        "MicroService.Client.Name": "Hello",//配置要注册的模块名称,可以多个逗号分隔,可以注册域名(实现域名绑定)
        "MicroService.Client.RegUrl": "http://localhost:9000",//注册中心地地址
    
        "MicroService.App.RunUrl": "http://localhost:9002",
        "Host": "http://*:9002"
      }
    }

    然后发布,运行即可:

     

     看第一二行,运行成功后,客户端会定时保持注册同步。

    微服务负载均衡:

    仅需要将客户端,复制多份,修改启动端口,直接运行,网关会自动采用轮循的方式负载均衡。

    整体运行效果:

    1、直接访问应用程序:

    2、通过网关访问:

     3、访问注册中心(注册中心也可以当网关用)

    总结:

    本篇介绍微服务框架的最基本使用,在任意开发框架上,引用Taurus.MVC的Nuget包,加上最简的几行配置,即可成为微服务的任意一端。

    V3.0.3 已实现的功能:

    ------------------V3.0.3【新增内置微服务(网关和注册中心)功能】----------------
    1、新增:注册中心服务注册。(2022-07-23)
    2、新增:网关代理转发。(2022-07-23)
    3、新增:网关安全效验([MicroService]属性标记时接口仅允许微服务间调用)。(2022-07-24)
    4、新增:网关集群。(2022-07-25)
    5、新增:注册中心故障转移。(2022-07-25)
    6、新增:服务间调用方法提供。(2022-07-26)
    7、优化:路由寻址与代理转发的兼容。(2022-07-27)
    8、优化:统一日志监控方案,方便问题定位。(2022-07-28)
    9、新增:文件代理转发,支持作为网站网关。(2022-07-29)
    10、优化:Taurus.Core.Controller 去掉方法与属性:方法【CheckFormat】、属性【Sort、Order】。(2022-07-29)
    11、新增:Kestrel下网关和服务启动后触发请求(配置项:MicroService.App.RunUrl)。(2022-07-29)
    12、新增:Kestrel 实现多域名绑定转发。(2022-07-29)
    13、优化:大量微服务的注册性能优化和并发测试。(2022-07-30)
    14、优化:服务端和客户端各自独立。(2022-07-31)
    15、新增:兼容微软mvc框架引用即可成为微服务端。(2022-08-01)
    16、新增:完成Web的Cookie转发。(2022-08-01)
    17、新增:控制台日志输出,方便调试。(2022-08-01)

    微服务的其它内容细节,会在后续的教程文章中讲述到。

    后续,针对Taurus.MVC ,会重新补充三个系列教程:

    1、Taurus.MVC WebAPI 入门开发教程 系列。
    2、Taurus.MVC 微服务框架 入门开发教程 系列。
    3、Taurus.MVC Web应用程序 入门开发教程 系列。
  • 相关阅读:
    关于addEventListener的使用和注意项
    multiple network疾病传播
    安卓手机APP开发__媒体开发部分__播放器的接口
    【DETR源码解析】一、整体模型解析
    【GlobalMapper精品教程】003:GlobalMapper影像裁剪、批量影像分幅案例详解
    解读云视商系统开发等主流9大电商APP商业模式
    机器视觉康耐视visionpro-脚本常见的编辑编译错误和运行错误及警告性错误,调试解决办法
    Vue3.0-如此简单的setup
    智能AI系统ChatGPT网站源码+支持OpenAI DALL-E3文生图+支持ai绘画(Midjourney)/支持GPT全模型+国内AI全模型
    【图像修复】基于改进的Criminisi算法实现图像修复附matlab代码
  • 原文地址:https://blog.csdn.net/cyq1162/article/details/126119450