beetlex網關之聚合和url請求過慮


在這里主要介紹beetlex應用網關的兩個插件,分別是聚合和url請求過慮.通過聚合插件可以把整合多個請求的數據來應答請求端,而Url請求過慮同可以拒絕一些有非常關鍵字的請求。

請求聚合

在網關服務中請求聚合是允許把多個請求打包成一個響應給請求方,這樣不僅可以節省請求方的請求數量,還可以根據需求的情況整合不同業務數據響應請求。BeetleX.Bumblebee雖然並沒有內置這一功能,但可以通過擴展的形式來支持請求聚合,接下來就介紹一下組件的聚合插件使用。

引用插件

可以通過Nuget安裝最新版本BeetleX.Bumblebee.Aggregation,安裝后通過網關加載插件(需要更新BeetleX.FastHttpApi 到1.7.7.8)

gateway.LoadPlugin(typeof(Bumblebee.Aggregation.Aggregate).Assembly);

注冊了插件后,可以在管理的插件頁面看到相關插件

 

插件默認是不啟用,啟用前需要配置相關的Url聚合。

應用需求

現在有兩個請求,一個是獲取雇員信息,另一個則獲取雇員相關訂單,情況如下:

http://192.168.2.25:9090/employee/2 

http://192.168.2.26:9090/orders/2

接下來希望訪問以下地址來整合兩個接口的數據輸出

http://host/GetEmployeeOrders?id=2

配置

接下來根據上面的情況來制定一個聚合配置,點擊插件進行配置頁面

 配置信息是一個數組結構,可以根據需要來定義多個聚合請求路徑。Url表示聚合的請求路徑,OutputError用於描述如果某個請求有錯誤是否把錯誤輸出,Actions相應聚合的多項請求地址。針對剛提到的需要配置如下:

[
  {
    "Url": "/GetEmployeeOrders",
    "OutputError": true,
    "Actions": [
      {
        "Name": "Employee",
        "Host": "http://192.168.2.25:9090",
        "Url": "/employee/{id}"
      },
      {
        "Name": "Orders",
        "Host": "http://192.168.2.26:9090",
        "Url": "/orders/{id}"
      }
    ]
  }
]

配置支持通過{xxx}的方式把請求的參數傳遞到聚合請求中。接下來嘗試訪問一下/GetEmployeeOrders(注意要先啟用插件)

由於沒有帶上參數所以訪問返回了404,接下來帶上正式的參數

當提供正確的參數后就把請求數據聚合到正常結果輸出

不輸出錯誤

有時候為了方便處理不想輸出錯誤,當聚合Url有錯誤只響應null。這樣只需要把OutputError調整一下即可

[
  {
    "Url": "/GetEmployeeOrders",
    "OutputError": false,
    "Actions": [
      {
        "Name": "Employee",
        "Host": "http://192.168.2.25:9090",
        "Url": "/employee/{id}"
      },
      {
        "Name": "Orders",
        "Host": "http://192.168.2.26:9090",
        "Url": "/orders/{id}"
      }
    ]
  }
]

通過以上介紹組件制定聚合處理是不是非常方便呢,如果想更多了解組件可以訪問

url請求過慮

一旦網站部署到互聯網上,就會受到一些非法的請求,而這些請求的Url都是一些特定的路徑或帶上一些無關請求的字符用於探測一些服務存在的問題;還有這些請求會落到日志中,導致日志臃腫和轉發到后台服務帶能處理上的損耗。為了應對攔截這些請求不流入到后台節點服務,組件提供了一個插件來解決這一問題。

引用組件

可以通過Nuget引用BeetleX.Bumblebee.InvalidUrlFilter,引用之后通過組件加載這個插件的程序集即可:

Gateway.LoadPlugin(typeof(Bumblebee.InvalidUrlFilter.RequestUrlFilter).Assembly);

引用成功后,通過管理插件提供的列表中可以看到

 這個插件默認是關閉,如果有需要開啟即可。

配置插件

插件默認是不過慮任何請求的Url,你需要配置一些非常的關鍵字詞組,只要請求的Url存在這些詞組即可被組件拒絕。配置可以點擊插件進行配置頁面.

可以根據需要來添加一些非常法的關鍵字,添加完成后保存即可。如果請求的Url有相關內容即會響應網關錯誤

 

 只需發簡單地配置,就可以過慮一些非法的Url請求

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM