Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效。
前言:
自首个带微服务版本的框架发布: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、相关细节的内容,后续再写文章介绍。
Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效。的更多相关文章
- Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。
前方: 开源地址:https://github.com/cyq1162/Taurus.MVC 上篇文章介绍过:工业制造行业的低代码开发平台思维架构图 规划中涉及到了微服务,近些天经过努力和不断的代码与 ...
- .net core 自带分布式事务的微服务开源框架JMS
事务的统一性是微服务的一个重点问题,简洁有效的控制事务,更是程序员所需要的.JMS的诞生,就是为了更简单.更有效的控制事务. 先看一段调用微服务的代码: using (var ms = new JMS ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- 基于Docker Compose的.NET Core微服务持续发布
是不是现在每个团队都需要上K8s才够潮流,不用K8s是不是就落伍了.今天,我就通过这篇文章来回答一下. 一.先给出我的看法和建议 我想说的是,对于很多的微小团队来说,可能都不是一定要上K8s,毕竟上K ...
- 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)
一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...
- net core 微服务框架 Viper 调用链路追踪
1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...
- hello world .net core 微服务框架 Viper
1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...
- ASP.NET Core微服务+Tabler前端框架搭建个人博客1--开始前想说的话
写在前面 本人为在读研究生,特别喜欢.NET,觉得.NET的编程方式.语法都特别友好,学习.NET Core已经差不多有一年半了,从一开始不知道如何入门到现在终于可以编写一些小的应用程序,想一想还是非 ...
- (7)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 利用Polly+AOP+依赖注入封装的降级框架
创建简单的熔断降级框架 要达到的目标是: 参与降级的方法参数要一样,当HelloAsync执行出错的时候执行HelloFallBackAsync方法. public class Person { [H ...
随机推荐
- 念一句咒语 AI 就帮我写一个应用,我人麻了...
原文链接:https://forum.laf.run/d/232 作为人类,我们时常会有自己独特的想法和脑洞大开的创意.然而,这些想法往往因为成本过高而无法实现,毕竟每个人的能力和精力都是有限的,尤其 ...
- RFM客户分类模型的应用——R语言
RFM模型是衡量客户价值和客户创造利益能力的重要工具和手段.在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到的.该机械模型通过一个客户的近期购买行为.购买的总体频率以及花了多少钱3项 ...
- 时隔十年,QQ更新了Linux版本
昨天1024程序员节,QQ悄悄地更新了QQ for Linux,也许是给各位一个惊喜吧. 官网及其的简陋.和一个Word文档似的. 十年一更,有网友称,瞬间回到QQ2006,确实界面功能有些落后,相信 ...
- 社工工具包setoolkit克隆网站钓鱼网站
实验主机:kali win10 (搭建好的dvwa靶场用于克隆登录页) setoolkit简介:setoolkit 是一个开源的社会工程学工具包.有很多选项可以使用更多操作读者自行探究. 实验开始: ...
- day29:计算机网络概念
目录 1.网络开发的两大架构 2.网络概念 3.OSI七层模型 4.ARP协议 5.TCP三次握手和四次挥手 1.网络开发的两大架构 1.没有网络的时候,文件是如何传输的? 早期没有网络 a.py - ...
- 【python爬虫】爬取美女图片
一,导入包文件 os:用于文件操作.这里是为了创建保存图片的目录 re:正则表达式模块.代码中包含了数据处理,因此需要导入该模块 request:请求模块.通过该模块向对方服务器发送请求获取数据包 l ...
- JSON.parse 函数 (JavaScript)
将 JavaScript 对象表示法 (JSON) 字符串转换为对象. 语法 参数 返回值 异常 以下示例使用 JSON.parse 将 JSON 字符串转换成对象. var jsontext = ' ...
- C语言中,取反运算符~a=-(a+1)的原因
1.因为计算机直接拿读取到的数据去运算付出的代价是最小的,所以计算机存储的数据的形式应该满足读取后不必经过任何加工就能直接用来运算由于原码不经加工无法实现(+a)+(-a)=0,所以不满足该要求,为了 ...
- Kubernetes入门实践(搭建Wordpress网站)
容器只是对单个进程的隔离和封装,实际的应用场景要求许多的应用进程互相协同工作,因此出现了容器编排,Kubernetes将集群中的计算资源定义为节点(Node),其中又划分成控制面和数据面两类,控制面是 ...
- javasec(一)java反射
这篇文章介绍javasec基础知识--java反射. 0x01 反射是什么? 反射是一种机制,利用反射机制动态的实例化对象.读写属性.调用方法.构造函数. 在程序运行状态中,对于任意一个类或对象,都能 ...