開源地址:https://github.com/cyq1162/Taurus.MVC
上篇文章介紹過:工業製造行業的低程式碼開發平臺思維架構圖
規劃中涉及到了微服務,近些天經過努力和不斷的程式碼與反覆壓力測試,終於出來一個簡單的穩定版本了。
1、框架自帶整合了以下功能:
1、伺服器端:閘道器、註冊中心 2、使用者端:微服務應用程式。
因此,即可以做為伺服器端執行,也可以做為使用者端執行,下面進行簡單演示:
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>
appsettings.json 設定項:
{ "AppSettings": { "MicroService.Server.Name": "RegCenter",//設定為伺服器端執行的:註冊中心
"MicroService.App.RunUrl": "http://localhost:9000",//設定啟動的執行地址,可觸發預設微服務啟動。
"Host": "http://*:9000" } }
釋出執行,即成為註冊中心(也具備閘道器功能)
看到第一二行有輸出資訊即為成功。
複製一份註冊中心的程式,修改埠,再補上指向主地址的設定即可:
"MicroService.Server.RegUrl": "http://localhost:9000",//註冊中心地址
這裡將釋出後的專案,複製一份,改一下組態檔:
{ "AppSettings": { "MicroService.Server.Name": "Gateway",//服務名稱 "MicroService.Server.RegUrl": "http://localhost:9000",//註冊中心地址 "MicroService.App.RunUrl": "http://localhost:9001", "Host": "http://*:9001" } }
執行,即成為閘道器中心
看到第一二行輸出,即為成功,並間隔性從註冊中心讀取服務列表。
複製一份專案做為微服務應用,直接使用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(掃碼支援作者):微信: |