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<KestrelServerOptions>(x => x.AllowSynchronousIO = true).Configure<IISServerOptions>(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自动生成以下启动配置:

<configuration><system.web><httpModules><!--Taurus IIS应用程序池:经典模式(下运行,开启此配置)--><add name="Taurus.Core" type="Taurus.Core.UrlRewrite,Taurus.Core" /></httpModules></system.web><system.webServer><modules><!--Taurus IIS应用程序池:集成模式(下运行,开启此配置)--><add name="Taurus.Core" type="Taurus.Core.UrlRewrite,Taurus.Core" /></modules></system.webServer>
</configuration>

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应用程序 入门开发教程 系列。

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

  1. 微服务开源框架TARS的RPC源码解析 之 初识TARS C++服务端

    作者:Cony 导语:微服务开源框架TARS的RPC调用包含客户端与服务端,<微服务开源框架TARS的RPC源码解析>系列文章将从初识客户端.客户端的同步及异步调用.初识服务端.服务端的工 ...

  2. 浅谈阿里巴巴蚂蚁金服SOFA微服务开源框架

    前言: 提到分布式.微服务,大部分人首先想到的可能是SpringCloud.Duubo等主流框架,但事实上在SpringCloud还未出现之际,蚂蚁金服内部就已经有了一套比较完整的金融级分布式架构So ...

  3. 微服务开源框架TARS 之 基础组件

    作者 herman 导语 本文源自herman的系列文章之一<鹅厂开源框架TARS之基础组件>.相关代码已按TARS开源社区最新版本更新. TARS开源框架库里面用C++实现了比较多的公用 ...

  4. 微服务开源框架TARS 之 框架服务解析

    作者 herman 简介 本文源自herman的系列文章之一<鹅厂开源框架TARS之运营服务监控>.相关代码已按TARS开源社区最新版本更新. TARS框架为用户提供了涉及到开发.运维.以 ...

  5. java开源框架有哪些_常用的Java微服务开源框架有哪些呢

    随着程序规模的扩大以及复杂性增大,越来越多的Java程序员选择使用微服务进行项目设计研发.微服务的出现有助于开发人员用更低的成本和更少的错误来开发程序,因此也成为Java开发人员最重要的技能之一.但常 ...

  6. TARS 微服务开源生态

    TARS 微服务开源生态 基础层:基础架构(不同架构芯片.云.容器).基础开发语言 存储层和协议层:存储(Cache.数据库.大数据.文件系统).协议 逻辑平台层:框架.服务发现.Service Me ...

  7. 微服务开源项目ServiceComb 毕业成为Apache顶级项目

    全球最大的开源软件基金会Apache软件基金会(以下简称Apache)于北京时间10月24日宣布Apache ServiceComb 毕业成为Apache 顶级项目. \\ ServiceComb 由 ...

  8. guns 最新开源框架企业版下载_国内比较火的5款Java微服务开源项目

    本文介绍国内比较火的5款Java微服务开源项目,pig是基于Spring Cloud.OAuth2.0.Vue的前后端分离的系统. 通用RBAC权限设计及其数据权限和分库分表 支持服务限流.动态路由. ...

  9. 国内最火5款Java微服务开源项目

    国内最火5款Java微服务开源项目 目录 1.pig 2.zheng 3.Cloud-Platform 4.SpringBlade 5.Guns PIG 开源地址:https://gitee.com/ ...

最新文章

  1. python hdfs初体验
  2. nyoj-619 青蛙过河
  3. Tensorflow Day17 Sparse Autoencoder
  4. 闪灯什么意思_开车闪一下闪二下闪三下大灯是什么意思
  5. uva 816(经典bfs例子)
  6. HDU 5980 2016ICPC大连 J: Find Small A
  7. input输入框提示从数据库查出来的一堆数据
  8. Python工程师面试题目
  9. leancloud 怎么绑定域名_云引擎支持绑定加速域名 | LeanCloud 八月变化
  10. 配置hive元数据到mysql后启动不了 java.sql.SQLException: Access denied for user ‘root‘@‘hd101‘ (using password:
  11. PS 将图片渐变透明
  12. 小技巧(1):Ububtu18.04中.z01 .z02 .z03此类拆分后压缩文件解压缩办法(以及常用解分卷压缩方法)
  13. 50例源码Python scipy.stats.norm 模块,pdf()
  14. Grain Identity
  15. 如何在敏捷环境中使用测试指标
  16. JavaScript走动的小人
  17. 谈谈SPI (Serial Peripheral Interface,串行外设接口)
  18. 【pytest】2.pytest的前置、后置
  19. MATLAB 机器人工具箱与机器人系统工具箱使用
  20. 力扣 -- 551. 学生出勤记录 I 、 552. 学生出勤记录 II

热门文章

  1. EXCEL批量替换公式数据变成真两位小数
  2. 自考笔记-创业学02(小白粗写)
  3. python数字推盘游戏怎么显示步数_Python游戏开发:数字华容道
  4. 同济计算机考研专业课,同济大学计算机考研难不难
  5. 管家婆辉煌版提示:嘚瑟反馈率F 请联系任我行软件股份公司或当地合法代理,有后门?
  6. Ubuntu17.10 安装WPS
  7. eps8266使用详解
  8. java版 SpringCloud 之目前得前端框架都有哪些?
  9. 学拳录.第1势 预备势
  10. 图画日记怎么画_图画日记怎么画_二年级下册绘画日记图片