經過長時間的規劃和編碼,終於出來了.NET 版本的微服務框架,而且框架的使用簡單,無入侵集成,可幫助任意項目輕鬆向大併發架構演進。 ...
前方:
開源地址: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(掃碼支持作者):微信: |