日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bumblebee微服务网关之访问日志处理

發(fā)布時(shí)間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bumblebee微服务网关之访问日志处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


記錄訪問日志可以起到非常重要的作用,它不僅記錄了API的使用情況,更可以反映API各種相關(guān)數(shù)據(jù);通過分析日志可以得到API不同時(shí)間的負(fù)載情況,訪問效率和流量分布,更進(jìn)一步還能分析出用戶的操作歷史和行為這是非常有價(jià)值的。由于性能問題Bumblebee默認(rèn)并不直接寫入這些日志,而是通過插件的方式來加載處理。Bumblebee.Logs是組件的日志擴(kuò)展插件,它支持寫入數(shù)據(jù)和文件兩種方式,使用者可以根據(jù)自己的需求來開啟(由于這兩個(gè)插件會完全寫入所有請求日志,如果應(yīng)用并發(fā)量大時(shí)啟用需要注意).如果需要更高效的日志處理(如nosql、mq等)或更豐富的日志內(nèi)容則需要使用者擴(kuò)展引入。

引用插件

Bumblebee中使用JWT需要引用兩個(gè)插件,分別是Bumblebee.Configuration和Bumblebee.Logs。加載啟動后就可以通過管理工具進(jìn)行插件配置.

g = new Gateway();
g.HttpOptions(
o =>
{
o.Port = 80;
o.LogToConsole = true;
o.LogLevel = BeetleX.EventArgs.LogType.Error;
});
g.Open();
g.LoadPlugin(
typeof(Bumblebee.Configuration.Management).Assembly,
typeof(Bumblebee.Logs.FileLog).Assembly
);

如果不想自己編寫代碼可以下載編譯的運(yùn)行包?Bumblebee1.0.6這個(gè)版本已經(jīng)加入了Bumblebee.Logs

插件管理

運(yùn)行程序后進(jìn)行配置管理工具的插件管理頁面,可以看到日志插件,默認(rèn)是未啟用(由于日志寫入需要大量的IO操作,在大并發(fā)的情況可能會引起IO負(fù)載過重,需根據(jù)自己情況來啟用;如果當(dāng)前插件在性能上不能滿足需求,則需要自己擴(kuò)展插件)。

日志組件提供兩個(gè)插件,分別是寫入本地文件和寫入數(shù)據(jù)庫

寫入文件

當(dāng)開始寫入文件日志插件時(shí),會在request_logs中寫入日志文件,日志格式如下:

2019/10/3 20:15:33 9418d4d1ffef4c28ad93929321026045_158 ::ffff:192.168.2.18 GET / /json 192.168.2.25:9090 200 1
2019/10/3 20:15:33 9418d4d1ffef4c28ad93929321026045_159 ::ffff:192.168.2.18 GET / /json 192.168.2.31:9090 200 1
2019/10/3 20:15:33 9418d4d1ffef4c28ad93929321026045_161 ::ffff:192.168.2.18 GET / /json 192.168.2.27:9090 200 1
2019/10/3 20:15:33 9418d4d1ffef4c28ad93929321026045_163 ::ffff:192.168.2.18 GET / /json 192.168.2.26:9090 200 1
2019/10/3 20:15:33 9418d4d1ffef4c28ad93929321026045_165 ::ffff:192.168.2.18 GET / /json 192.168.2.32:9090 200 2
2019/10/3 20:15:33 9418d4d1ffef4c28ad93929321026045_167 ::ffff:192.168.2.18 GET / /json 192.168.2.28:9090 200 1

主要寫入的內(nèi)容是:時(shí)間,ID,客戶端IP,請求類型,路徑,處理的服務(wù),狀態(tài)和處理時(shí)間(單位ms)。

寫入數(shù)據(jù)庫

插件提供日志寫入數(shù)據(jù)庫功能,分別支持:MSSQL,MYSQL和PGSQL三種數(shù)據(jù)庫;在插件啟用之前先把數(shù)據(jù)庫信息配置好。

  • QueueSize?緩存隊(duì)列大小,為了提高寫入性能組件通過批量的方式寫入,在寫入之前會緩存到隊(duì)列中。

  • DBType數(shù)據(jù)庫類型,分別為:MSSQL,MYSQL和PGSQL

  • ConnectionString數(shù)據(jù)庫連接字符串

  • Table?存儲日志的表名稱

MYSQL日志結(jié)構(gòu)

CREATE TABLE `_gateway_log` (
`ID` varchar(50) NOT NULL,
`CreateTime` datetime DEFAULT NULL,
`RemoteIP` varchar(45) DEFAULT NULL,
`Method` varchar(10) DEFAULT NULL,
`Path` varchar(45) DEFAULT NULL,
`Url` varchar(1024) DEFAULT NULL,
`Server` varchar(45) DEFAULT NULL,
`Code` int(11) DEFAULT NULL,
`ProcessTime` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

數(shù)據(jù)庫配置完成后就可以啟用插件,啟用后相關(guān)訪問就會寫入到對應(yīng)的數(shù)據(jù)庫上

寫入記錄

默認(rèn)提供插件記錄的數(shù)有限,如果你想更更豐富的數(shù)據(jù),如header,querystring等更詳細(xì)信息可以自定義相關(guān)插件來實(shí)現(xiàn)。


關(guān)注公眾號

?https://github.com/IKende/?

高性能的服務(wù)通訊框架?Beetlex(http,rpc,gateway的詳細(xì)實(shí)現(xiàn))



總結(jié)

以上是生活随笔為你收集整理的Bumblebee微服务网关之访问日志处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。