首页 > 其他分享 >Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效。

Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效。

时间:2023-06-06 16:15:42浏览次数:49  
标签:Core V3.1 http 插件 Taurus 分布式应用 服务 Net com

前言:

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

已经过去快1年了,在这近一年的时间里,版本经历了N个版本的迭代。

如今,是时候写文章介绍一下了:

以下介绍中,仅以.Net Core 6 为示例代码。

框架支持在.Net Framework 2.0+、.Net Core 2.1+ 任意版本运行。

1、新版本改进重点介绍:

新版本的更新日志很多,这里简化成以下10条:

1、对网关、注册中心(主)、注册中心(从)进行了大量的稳定性和性能优化。

2、对Linux 运行环境做了兼容处理。

3、简化Kestrel域名绑定和Https证书绑定。

4、内部优化:模块调整:除Mvc模块,其余以Plugin形式提供服务。

5、内部优化:名称空间调整:仅留 Taurus.Mvc、Taurus.Plugin 两个名称空间。

6、调整为插件:MicroService:提供微服务服务。

7、调整为插件:CORS:提供跨域服务。

8、调整为插件:Doc:提供WebAPI测试文档自动生成及自动化测试功能。

9、新增插件:Limit:提供IP黑名单、访问频率限速、ack安全码验证等限制服务。

10、新增插件:Admin:提供可视化后台统一管理服务。

其它:比如提供了分布式锁功能。

下面,以目前实际运行作为示例讲解:如何在项目实战中应用和部署。

1、部署注册中心【绑定80端口,仅启动http】

可以通过下载源码运行编绎,【或新建.Net Core 6的项目,在Nuget中引用Taurus】。

Program.cs:代码:

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.UseUrls(MvcConfig.Kestrel.Urls); //启动端口外置到配置文件。
builder.Services.AddTaurusMvc();//必要1

var app = builder.Build();
app.UseTaurusMvc();//必要2
app.Run();

appsetting.json:配置:

{
  "AppSettings": {
    "MicroService.Server.Name": "RegCenter",
    "Urls": "http://*:80",
"Mvc.RunUrl":"http://regcenter.cyqdata.com" } }

调整好代码,编绎后,即可上传到Linux环境中:

通过Supervisor启动即可。

Linux 部署 示例地址:http://regcenter.cyqdata.com

2、部署网关:【绑定443端口,开启https】

 1、程序和注册中心一致,唯 appsetting.json 配置文件需要调整如下:

{
  "AppSettings": {
     "MicroService.Server.Name": "Gateway",
    "MicroService.Server.RcUrl": "http://regcenter.cyqdata.com",
    "Mvc.RunUrl":"https://gateway.cyqdata.com"
  }
}

2、把证书放在App_Data/ssl目录下

调整好代码,编绎后,即可上传到Linux环境中:

通常在各平台可以下载域名的pfx证书,

下载后解压,反密码xxx.txt,改成域名.txt即可。

通过Supervisor启动即可。

Linux 部署 示例地址:https://gateway.cyqdata.com


部署好上面两个,服务端即算完成。

【上面的示例,若部署在一台电脑上,刚好一个占80端口,一个占443端口】。

3、部署微服务应用客户端节点:

程序代码都和以上一致,appsetting.json 配置有点区别:

{
  "AppSettings": {
     "MicroService.Client.Name": "*",
    "MicroService.ClientRcUrl": "http://regcenter.cyqdata.com",
    "Urls":"http://*:0"
  }
}

说明:Urls 指定0端口,即随机端口,可以多开。

部署环节就介绍到这里了,也可以参考以前的系列文章:Taurus.MVC 微服务框架(双语言支持:.Net Core/Java)

【相关的配置有调整的,文章都修改过了】


下面是本次发版本发布的重点内容:

重点内容:Admin 插件:可视化管理

 不管对网关,还是注册中心,或是客户端,都有一个默认的可视化管理后台。

 默认空密码,直接可登陆:

1、MS - Host :微服务相关内容,可以观察各注册节点信息,注册中心还可以远程停止客户端微服务,或让客户端退出应用程序。 

 

2、OS - Environment :系统环境信息、以及项目加载的程序集信息:

3、App - Config :配置管理界面,可以管理Kestrel、Taurus、CYQ.Data 框架内部的相关的项,直接双击Config Value,即可修改调整:

【除了Kestrel的相关配置,其余配置基本是修改即生效】。

4、App - Log:用于查看本机文件日志【可以实时打印请求信息、请求执行的Sql、或全局Sql时长过滤的语句】。

5、Ext - Menu :扩展菜单,需要在Setting 手工添加菜单,才会展示,效果如下【初步用它来统一管理Supervisor】:

6、Setting :信息设置,包括:【只读管理员创建与删除】、【IP黑名单】、【手工添加微服务节点】、【扩展菜单添加】

通过Admin插件,可以实时掌握管理整个项目。

总结:

1、开源地址:https://github.com/cyq1162/Taurus.MVC

2、相关细节的内容,后续再写文章介绍。

标签:Core,V3.1,http,插件,Taurus,分布式应用,服务,Net,com
From: https://www.cnblogs.com/cyq1162/p/17459719.html

相关文章

  • Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
    运行环境照例,先亮环境;软件的话我这里假设你已经批准好了.netcore运行环境,未配置可以看我的这篇[linux(centos)搭建.netcore运行环境]腾讯云centos:7.2cpu:1核2G内存1M带宽docker:18.06.1-ce安装docker安装其实很简单,就不重复说了,请查看纯洁大神这篇文章准备你的.netcoreweb程......
  • NET Core CLI命令小结
    dotnetrundotnetrun--urls=http://*:8080//urls指定ip和端口dotnetwatchrun//watch监听程序修改,一旦修改则重新启动dotnetwatchrun--urls=http://*:8080dotnetrun-pNETCoreCLI.csproj//一个“-”是简称的pdotnetrun--projectNETCoreCLI.csproj//两个“-”是全......
  • net core+mediatr+EF实现事件触发
    参考杨中科的教程1.先添加接口usingMediatR;namespaceNetOptions.Entities;publicinterfaceIDomainEnvent{voidAddNotification(INotificationnotification);IEnumerable<INotification>GetNotifications();voidClearNotifications();}2.添加抽......
  • 手把手教你AspNetCore WebApi:Swagger(Api文档)
    前言小明已经实现“待办事项”的增删改查,并美滋滋向负责前端的小红介绍Api接口,小红很忙,暂时没有时间听小明介绍,希望小明能给个Api文档。对于码农小明来说能不写文档就尽量不要写,不过这也难不倒小明,他知道Swagger不仅可以自动生成Api文档,并还可以用Swagger进行接口测试。Swagger是什......
  • 手把手教你AspNetCore WebApi:数据验证
    前言小明最近又遇到麻烦了,小红希望对接接口传送的数据进行验证,既然是小红要求,那小明说什么都得满足呀,这还不简单嘛。传统验证[HttpPost]publicasyncTask<ActionResult<Todo>>PostTodo(Todotodo){if(string.IsNullOrEmpty(todo.Name)){returnOk("名称不......
  • 手把手教你AspNetCore WebApi:Serilog(日志)
    前言小明目前已经把“待办事项”功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的。Serilog是什么?在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog是这几年快速崛起的Log框架之一,Serilog是以Structuredlogging为基础进行设计,透过loggingAP......
  • 手把手教你AspNetCore WebApi:缓存(MemoryCache和Redis)
    前言这几天小明又有烦恼了,系统上线一段时间后,系统性能出现了问题,马老板很生气,叫小明一定要解决这个问题。性能问题一般用什么来解决呢?小明第一时间想到了缓存。什么是缓存缓存是实际工作中非常常用的一种提高性能的方法。缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能......
  • ASP.NET Core MVC 项目在IIS中部署
    一、vs中把MVC项目以文件系统发布、设置保存的路径二、安装.NETCore3.1Runtime网址:https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-3.1.5-windows-x64-installer 三、安装AspNetCoreModule网址:https://dotnet.microsoft.com/download/dotne......
  • 手把手教你AspNetCore WebApi:增删改查
    前言小明已经创建与运行了WebApi项目,了解项目结构有哪些组成,并学会了怎么发布到IIS。基础已经建好,从现在开始要真正实现待办事项的功能了。新建表CREATETABLE[dbo].[Todo]( [Id][uniqueidentifier]NOTNULL, [Name][nvarchar](100)NULL,CONSTRAINT[PK_Todo]PRIMARYKEY......
  • 手把手教你AspNetCore WebApi:认证与授权
    前言这几天小明又有烦恼了,之前给小红的接口没有做认证授权,直接裸奔在线上,被马老板发现后狠狠的骂了一顿,赶紧让小明把授权加上。赶紧Baidu一下,发现大家都在用JWT认证授权,这个倒是挺适合自己的。什么是TokenToken是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后......