Taurus.MVC 微服務框架 入門開發教程:項目部署:7、微服務節點的監控與告警。

系統目錄:

本系列分為項目集成、項目部署、架構演進三個方向,後續會根據情況調整文章目錄。

開源地址://github.com/cyq1162/Taurus.MVC

本系列第一篇:Taurus.MVC V3.0.3 微服務開源框架發布:讓.NET 架構在大並發的演進過程更簡單。

Taurus.MVC 微服務框架 入門開發教程:項目集成:1、服務端:註冊中心、網關(提供可運行程式下載)。

Taurus.MVC 微服務框架 入門開發教程:項目集成:2、客戶端:ASP.NET Core(C#)項目集成:應用中心。

Taurus.MVC 微服務框架 入門開發教程:項目集成:3、客戶端:其它程式語言項目集成:Java集成應用中心。

Taurus.MVC 微服務框架 入門開發教程:項目集成:4、默認安全認證與自定義安全認證。

Taurus.MVC 微服務框架 入門開發教程:項目集成:5、統一的日誌管理。

Taurus.MVC 微服務框架 入門開發教程:項目集成:6、微服務間的調用方式:Rpc.StartTaskAsync。

Taurus.MVC 微服務框架 入門開發教程:項目部署:1、微服務應用程式常規部署實現多開,節點擴容。

Taurus.MVC 微服務框架 入門開發教程:項目部署:2、讓Kestrel支援綁定多個域名轉發,替代Ngnix使用。

Taurus.MVC 微服務框架 入門開發教程:項目部署:3、微服務應用程式版本升級:全站升級和局部模組升級。

Taurus.MVC 微服務框架 入門開發教程:項目部署:4、微服務應用程式發布到Docker部署(上)。

Taurus.MVC 微服務框架 入門開發教程:項目部署:5、微服務應用程式發布到Docker部署(下)。

Taurus.MVC 微服務框架 入門開發教程:項目部署:6、微服務應用程式Docker部署實現多開。

Taurus.MVC 微服務框架 入門開發教程:項目部署:7、微服務節點的監控與告警。

Taurus.MVC 微服務框架 入門開發教程:架構演進:1、從單應用程式簡單過渡到負載均衡。

Taurus.MVC 微服務框架 入門開發教程:架構演進:2、負載均到模組拆分負載。

Taurus.MVC 微服務框架 入門開發教程:架構演進:3、模組拆分負載到多級負載均衡。

Taurus.MVC 微服務框架 入門開發教程:運行示例://github.com/cyq1162/Taurus.MVC.MicroService.Demo

前言:

以過多天的努力,終於一直更新到了V3.1.2版本:V3系列到目前的版本的更新如下:

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)
18、新增:模組配置:「*」,代表:註冊所有模組。(2022-08-03)
19、新增:模組配置:「*.*」代表:註冊所有域名。(2022-08-03)
20、優化:網關或註冊中心使用域名訪問時:先匹配域名註冊,再匹配模組註冊。(2022-08-03)
21、優化:網關並發請求和其它細節優化。(2022-08-10)
22、優化:控制器下找不到的方法路徑,也統一跳轉到全局Default。(2022-08-12)
23、優化:大量並發請求的穩定性。(2022-08-15)
24、新增:模組配置:【模組名|版本號】如:"xxx|1,yyy|2",對於多模組,允許指定各自版本號。(2022-08-16)
25、優化:版本升級:新版運行每次註冊【5-10秒】僅清除1箇舊版本,用於平滑版本過渡版本升級。(2022-08-16)
26、優化:版本升級:僅綁定域名的追加*通配符;優化獲取Host演算法(模組高版本存在時,忽略低版本通配符)。(2022-08-17)
27、優化:微服務對外介面的文檔顯示,以便其它程式語言查看與調試。(2022-08-17)
-------------------------V3.1.1.0【升級微服務功能】(2022-09-09 - 2022-09-13)-----------------------------
1、優化:調整Controller的名稱空間:Taurus.Core =>Taurus.Mvc
2、優化:控制器命名調整:允許控制器名稱不以Controller結尾(DefaultController除外)。
3、優化:Extend 更名:Plugin :原有Auth模組,獨立出外部項目,變更為插件方式提供。
4、優化:微服務網關代理調用。
5、優化:微服務間的Key的網路調用請求頭傳參數名變更:microservice => mskey。
6、優化:CheckAck、CheckToken、CheckMicroService、BeginInvode、EndInvode等方法(參數優化)。
7、新增:IgnoreDefaultControllerAttribute 允許控制器忽略全局DefaultController事件。
8、新增:提供微服務間的調用方式:Taurus.MicroService.Rpc。
--------------------------V3.1.1.1:(2022-09-13 - 2022-10-11)---------------------------------------------
1、優化:新方法的反射獲取提前到控制器初始化階段。
2、優化:反射程式集(配置*號時,跳過錯誤的載入項而不拋異常)。
3、優化:Linux 下Mvc Views 文件路徑大小寫的獲取。
4、優化:MicroService.MSConfig 更名為:MicroService.MsConfig。
---------------------------V3.1.2.0:(2022-10-12)---------------------------------------------
1、新增:註冊中心註冊的資訊(包含客戶端和服務端)可寫入指定資料庫(配置MsConn資料庫鏈接,配置MsTableName(可選)。(2022-10-12)

當前最新版本最後一條更新:

通過指定資料庫鏈接,可以將所有的服務資訊,都存檔在指定的資料庫中,然後自行根據該數據,自行生成圖表監控即可。

下面介紹該使用方式(該方式使用和《項目集成:5、統一的日誌管理》一文中的使用方式相似):

1、配置資料庫鏈接:MsConn

appsettings.json:配置如下:

複製程式碼
{
  "ConnectionStrings": {
    "MsConn": "server=.;database=MsHost;uid=sa;pwd=123456"
  },
  "AppSettings": {
    //...
  }
}
複製程式碼

web.config:配置如下:

複製程式碼
<configuration>
  <connectionStrings>
    <add name="MsConn" connectionString="......"/>
  </connectionStrings>
</configuration>
複製程式碼

2、配置資料庫鏈接(備,可選):MsConn_Bak

appsettings.json:配置如下:

複製程式碼
{
  "ConnectionStrings": {
    "MsConn": "server=.;database=Ms;uid=sa;pwd=123456"
  "MsConn_Bak": "server=.;database=Ms_bak;uid=sa;pwd=123456"
},
  "AppSettings": {
   //......
  }
}
複製程式碼

web.config:配置如下:

複製程式碼
<configuration>
  <connectionStrings>
    <add name="MsConn" connectionString="......"/>
   <add name="MsConn_bak" connectionString="......"/>
</connectionStrings>
</configuration>
複製程式碼

說明:

如果主資料庫了,默認鏈接會切換到備資料庫鏈接寫,避免監控數據丟失。

3、自定義資料庫表名:(默認:MsRegCenter)

appsettings.json:配置如下:

複製程式碼
{
  "ConnectionStrings": {
    "MsConn": "server=.;database=Ms;uid=sa;pwd=123456"
  "MsConn_Bak": "server=.;database=Ms_bak;uid=sa;pwd=123456"
},
  "AppSettings": {
   "MsTableName":"自定義微服務模組資訊表名" } }
複製程式碼

web.config:配置如下:

複製程式碼
<configuration>
  <connectionStrings>
    <add name="MsConn" connectionString="......"/>
   <add name="MsConn_bak" connectionString="......"/>
</connectionStrings>
<appSettings>
    <add key="MsTableName" value="自定義表名"/>
</appSettings>
</configuration>
複製程式碼

說明:

對於資料庫,可以獨立一個資料庫,但對於不同的微服務集群,可以採用不同的表名來區分監控日誌。

4、自定義資料庫日誌表名:按每天或每月生成一張表進行採集(可選)

在【註冊中心】運行程式碼中(Programs.cs)找個寫程式碼的地方:

1、按每天生成1張日誌表:

MsConfig.LogTableName="表名"+DateTime.Now.ToString("yyyyMMdd");

2、按每月生成1張日誌表:

MsConfig.LogTableName="表名"+DateTime.Now.ToString("yyyyMM");

3、按每年生成1張日誌表:

MsConfig.LogTableName="表名"+DateTime.Now.ToString("yyyy");

說明:

一般沒有這個需求,但還是告訴有這麼個可以動態調整表名的方式。

5、自動生成的資料庫表結構:

運行註冊中心後,如果配置了對應的資料庫鏈接,框架會自動創建對應的數據表,同時系統每5秒,會更新一次資料庫表。

 

表數據說明:

1、服務端:(版本號默認都為0)

註冊中心:RegCenter。

註冊中心(從):RegCenterOfSlave。 

網關中心:Gateway。

如果要搜索服務端數據,查詢Version=0即可。

2、客戶端:版本號>=1

微服務中心:各自配置的名稱。
版本號未配置時,默認為1,可配置項>=1

其它說明:

Host:為各主機的可請求地址。

LastActiveTime:各主機請求註冊中心的最新時間(超過10秒,即為離線)。

總結:

僅需在【註冊中心】應用程式中,配置好資料庫鏈接,即可收穫所有相關的資訊。

以便於對各節點進行監控,進行故障告警。