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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

.net core自定义高性能的Web API服务网关

發(fā)布時間:2023/12/4 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net core自定义高性能的Web API服务网关 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

網(wǎng)關(guān)對于服務(wù)起到一個統(tǒng)一控制處理的作用,也便于客戶端更好的調(diào)用;通過網(wǎng)關(guān)可以靈活地控制服務(wù)應(yīng)用接口負(fù)載,故障遷移,安全控制,監(jiān)控跟蹤和日志處理等。由于網(wǎng)關(guān)在性能和可靠性上都要求非常嚴(yán)格,所以針對業(yè)務(wù)需求來制定一個服務(wù)網(wǎng)關(guān)需要花費比較大的成本。以下介紹一下Bumblebee基礎(chǔ)Web API網(wǎng)關(guān)組件,通過它可以靈活擴展更適合業(yè)務(wù)需求的應(yīng)用接口網(wǎng)關(guān)服務(wù)。

簡介

Bumblebee是基于BeetleX開發(fā)的HTTP網(wǎng)關(guān)服務(wù)組件,提供了高效的處理性能和基礎(chǔ)的網(wǎng)關(guān)代理功能;由于Bumblebee是一個基礎(chǔ)組件所以它并不像Nginx這些服務(wù)直接運行,使用者必須引用Bumblebee通過代碼的方式來制定符合自己需求的網(wǎng)關(guān)應(yīng)用。雖然需要編寫代碼來制定網(wǎng)關(guān),但組件提供簡單的方法和事件可以讓網(wǎng)關(guān)的制定變得非常簡單。接下來介紹一下如何通過Bumblebee來實現(xiàn)一個簡單的Web API負(fù)載網(wǎng)關(guān)。

構(gòu)建控制臺程序

引用Bumblebee

可以通過Nuget的方式進行引用組件,搜索Beetlex選擇BeetleX.Bumblebee即可以,也可以通過Git下載項目代碼進行項目引用?https://github.com/IKende/Bumblebee

網(wǎng)關(guān)實現(xiàn)

以上代碼實現(xiàn)由http://192.168.2.25:9090和http://192.168.2.26:9090兩個服務(wù)器負(fù)載的網(wǎng)關(guān)服務(wù),這樣一個網(wǎng)關(guān)服務(wù)就構(gòu)建完成,運行程序可以看到相關(guān)日志情況:

程序運行后組件默認(rèn)是監(jiān)聽8080端口,這個時候可以通過瀏覽器訪問網(wǎng)關(guān)


你會看到請求返回的服務(wù)信息頭是Server: Bumblebee(BeetleX),通過輸出日志可以查看請求的情況


日志顯示請求被路由到不同的服務(wù)器上

HTTP配置

組件默認(rèn)提供了一些HTTP服務(wù)配置信息,在默認(rèn)的情況不作任何配置即可提供網(wǎng)關(guān)服務(wù),如果想需要更換端口或啟用HTTPS服務(wù)可以通過HttpOptions方法進行設(shè)置,具體配置如下:

以上配置服務(wù)端口為80,并且開啟SSL來支持HTTPS訪問(開啟HTTPS需要指定證書和密碼)。

重權(quán)分配

以上示例是所有請求負(fù)載到這兩個服務(wù)中;由于兩者的權(quán)重都是0所以會進行平均負(fù)載。如果想192.168.2.26:9090的負(fù)載比重大些可以調(diào)整相關(guān)僅重值如:

以上配置是描述192.168.2.26:9090比192.168.2.25:9090多負(fù)載一倍的請求量;權(quán)重配置的最大值是10最小值是0,權(quán)重值為0的服務(wù)默認(rèn)是不參與負(fù)載處理工作,當(dāng)其他服務(wù)不可用的情況下0權(quán)重的服務(wù)才會生效。

Url配置

一般情況下使用*來匹配請求負(fù)載,但可以針對某些Url正則匹配的方式來制定負(fù)載策略,組件是優(yōu)先匹配長正則,在沒有匹配的情況下才會使用*的負(fù)載策略.

以上配置/order.*請求的路由負(fù)載到192.168.2.27:9090和192.168.2.28:9090上,其他則路由到192.168.2.25:9090和192.168.2.26:9090上

基礎(chǔ)事件

組件提供了一些基礎(chǔ)事件用于記錄和控制一些請求處理

Requesting事件

網(wǎng)關(guān)接受請求的時候觸發(fā)這個事件,用戶可以通過這個事件取消轉(zhuǎn)發(fā)并返回自定義內(nèi)容

Requested事件

網(wǎng)關(guān)接受請求并完成響應(yīng)后觸發(fā)這個事件,通過這個事件可以記錄網(wǎng)關(guān)轉(zhuǎn)發(fā)完成的狀態(tài)情況。

ResponseError事件

網(wǎng)關(guān)接受請求,但處理錯誤觸發(fā)這個事件,通過這個事件可以自定義錯誤響應(yīng)的內(nèi)容

基礎(chǔ)性能指標(biāo)

作為一個網(wǎng)關(guān)組件,必須有著可靠和高效的性能。以下針對Bumblebee組件的一個簡單測試,測試方式是開啟200個用戶進行1億次請求測試,在一臺E3-1230V2的服務(wù)器上測出的結(jié)果是7萬多RPS代理轉(zhuǎn)發(fā)處理,代理上下行帶寬達到7Gb

測試內(nèi)容


試結(jié)果

Bumblebee項目地址

https://github.com/IKende/Bumblebee

原文地址:https://www.cnblogs.com/smark/p/10382650.html

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com


總結(jié)

以上是生活随笔為你收集整理的.net core自定义高性能的Web API服务网关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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