前方:
開源地址:https://github.com/cyq1162/Taurus.MVC
上篇文章介紹過:工業制造行業的低代碼開發平臺思維架構圖
規劃中涉及到了微服務,近些天經過努力和不斷的代碼與反復壓力測驗,終于出來一個簡單的穩定版本了,
Taurus.MVC 微服務框架說明:
1、框架自帶集成了以下功能:
1、服務端:網關、注冊中心 2、客戶端:微服務應用程式,
因此,即可以做為服務端運行,也可以做為客戶端運行,下面進行簡單演示:
新建空專案,引入Taurus.MVC微服務框架
1、新建一個任意空Web專案,以NET6為示例,在Nuget上參考Taurus.MVC,這里引入第2個Taurus.MVC.Core NET Core版本,

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",//設定啟動的運行地址,可觸發Kestrel運行時啟動微服務,
"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應用程式 入門開發教程 系列,
| 著作權宣告:本文原創發表于 博客園,作者為 路過秋天 本文歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則視為侵權, |
個人微信公眾號
|
創業QQ群:617713515
|
Donation(掃碼支持作者):支付寶:
|
Donation(掃碼支持作者):微信:
|
|
|
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/500713.html
標籤:.NET技术
