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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

用HttpReports快速搭建API分析平台

發(fā)布時(shí)間:2023/12/4 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用HttpReports快速搭建API分析平台 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

HttpReports

簡(jiǎn)單介紹

HttpReports 是 .Net Core下的一個(gè)Web組件,適用于 WebAPI 項(xiàng)目和 API 網(wǎng)關(guān)項(xiàng)目,通過(guò)中間件的形式集成到您的項(xiàng)目中, 通過(guò)HttpReports,可以讓開(kāi)發(fā)人員快速的搭建出一個(gè) API 性能分析的基礎(chǔ)報(bào)表網(wǎng)站。

主要包含 HttpReports 中間件 和 HttpReports.Web 報(bào)表項(xiàng)目:

HttpReports:https://github.com/SpringLeee/HttpReports

HttpReports.Web:https://github.com/SpringLeee/HttpReportsWeb

如何使用

1.運(yùn)行 HttpReports.Web

在github下載 HttpReports.Web 項(xiàng)目,項(xiàng)目地址:https://github.com/SpringLeee/HttpReportsWeb, Web項(xiàng)目是.Net Core MVC 項(xiàng)目,使用三層實(shí)現(xiàn)。

下載完成后,在VS中打開(kāi),然后還原NuGet程序包,完成后首先 appsettings.json

appsettings.json

{
"ConnectionStrings": {
"HttpReports": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;"
},
"HttpReportsConfig": {
"DBType": "SqlServer",
"UserName": "admin",
"Password": "123456"
}
}

主要參數(shù):

  • HttpReports:配置一個(gè)可用的連接字符串;

  • DBType:數(shù)據(jù)庫(kù)類型,支持SqlServer和MySql;

  • UserName: Web項(xiàng)目的登錄名;

  • Password: Web項(xiàng)目的登錄密碼;

假設(shè)我們使用的是SqlServer 數(shù)據(jù)庫(kù),需要先配置ConnectionStrings,然后手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù) HttpReports(Web項(xiàng)目會(huì)根據(jù)數(shù)據(jù)庫(kù)自動(dòng)創(chuàng)建表,并且在第一次運(yùn)行的時(shí)候Mock一些數(shù)據(jù) ),我們直接F5運(yùn)行項(xiàng)目, 沒(méi)有問(wèn)題的話,會(huì)直接跳到登錄頁(yè)面,輸入用戶名密碼 admin 123456,登錄后,應(yīng)該可以看到下面的頁(yè)面

現(xiàn)在可以看到項(xiàng)目有 auth,payment,sms 三個(gè)服務(wù)節(jié)點(diǎn),服務(wù)節(jié)點(diǎn)的定義如下:

請(qǐng)求地址服務(wù)節(jié)點(diǎn)說(shuō)明
https://www.abc.com/auth/api/user/loginauth
https://www.abc.com/log/api/user/loginlog
https://www.abc.com/api/user/logindefault如果沒(méi)有前綴的話,就是default節(jié)點(diǎn)

如果你的項(xiàng)目是單個(gè)WebAPI項(xiàng)目,那么服務(wù)節(jié)點(diǎn)只有一個(gè) default,如果你的項(xiàng)目是 GateWay 網(wǎng)關(guān)項(xiàng)目,那么Web項(xiàng)目就可以讀取到多個(gè)服務(wù)節(jié)點(diǎn),比如 auth 認(rèn)證,payment支付等。

2.在API項(xiàng)目中使用

首先要?jiǎng)h除 Web 項(xiàng)目的Mock數(shù)據(jù),打開(kāi)數(shù)據(jù)庫(kù) HttpReports,打開(kāi)表 RequestInfo,清空數(shù)據(jù),執(zhí)行Sql

Delete * From [HttpReports].[dbo].[RequestInfo]
配置數(shù)據(jù)庫(kù)連接字符串

HttpReports 適用單個(gè)API項(xiàng)目和網(wǎng)關(guān)項(xiàng)目,這里使用 Ocelot網(wǎng)關(guān)項(xiàng)目為例.

我們打開(kāi)appsetting.json, 配置數(shù)據(jù)庫(kù)連接字符串,需要和Web項(xiàng)目一致

Nuget引用HttpReports

安裝nuget包?HttpReports?,打開(kāi)StartUp

在ConfigureServices 方法下添加:

services.AddHttpReportsMiddlewire();

如果是MySql數(shù)據(jù)庫(kù),則添加:
csharp services.AddHttpReportsMiddlewire(options =>{ options.DBType = DBType.MySql; });

加入到 Configure 方法 ,需要放在 app.UseMVC() 或者 app.UseOcelot().Wait() 的前面,要不然不生效

app.UseHttpReportsMiddlewire();

ConnectionStrings 配置的連接字符串和數(shù)據(jù)庫(kù)類型要一致,全部完成了以后,我們就可以使用 Web 項(xiàng)目了。

項(xiàng)目環(huán)境基本要求

WebAPI或者網(wǎng)關(guān)項(xiàng)目支持的.Net Core 版本 2.2, 3.0, 3.1;

HttpReports.Web 的core版本為 2.2

性能事項(xiàng)

HttpReports 中間件是異步操作,所以對(duì)api接口請(qǐng)求的時(shí)間可以忽略,但是由于實(shí)質(zhì)使用的是數(shù)據(jù)庫(kù)存儲(chǔ),所以要注意直接請(qǐng)求到數(shù)據(jù)庫(kù)的壓力。

下面是用PostMan做的一個(gè)簡(jiǎn)單測(cè)試:

WebAPI內(nèi)的方法:

public string Sql1()
{
SqlConnection con = new SqlConnection(
"Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HyBasicData;");

var list1 = con.Query(" select * from [HyBasicData].[dbo].[Customers] ");

var list2 = con.Query(" select * from [HyBasicData].[dbo].[Customers] ");

var list3 = con.Query(" select * from [HyBasicData].[dbo].[Customers] ");

return list1.Count().ToString();
}

PostMan分別對(duì)添加中間件和不添加中間件的 API請(qǐng)求 1000次,每300ms請(qǐng)求一次

說(shuō)明請(qǐng)求次數(shù)平均響應(yīng)時(shí)間
原生API100032.535
使用中間件100032.899

總結(jié)

HttpReports 的實(shí)現(xiàn)原理并不復(fù)雜,如果你想給你的 WebAPI項(xiàng)目,快速的添加一套分析系統(tǒng) ,那么使用HttpReports 是一個(gè)不錯(cuò)的選擇

聯(lián)系作者

如果您在使用過(guò)程中遇到了什么問(wèn)題或者有好的建議的話,可以添加我的微信,希望可以幫助到。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的用HttpReports快速搭建API分析平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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