Ocelot學習筆記


 

  最近因工作需要,開始學習Ocelot。首先簡單介紹一下,Ocelot是一個基於.net core的開源webapi 服務網關項目,目前已經支持了IdentityServer認證。根據 作者介紹,Ocelot本質上是一堆中間件的集合,當HttpRequest請求到達后由一堆中間件進行處理,處理完畢,請求根據配置轉發給下游服務。然后接受下游服務的返回信息在轉發給客戶端,詳細信息請參考作者給出的文檔。

  GitHub地址:https://github.com/TomPallister/Ocelot

  先簡單介紹下,如何搭建一個Ocelot項目。

  首先,新建一個基於.net core的webapi項目, core版本要高於或等於1.1,因為目前Ocelot是基於.net core1.1

  然后可以通過nuget安裝Ocelot  

Install-Package Ocelot

  至此,項目搭建完畢。下面,在項目中添加 configuration.json 配置文件。Ocelot主要功能都是通過配置項來實現的。首先,我們來實現最簡單的服務轉發功能。配置文件中有兩個配置項,一個是ReRoutes主要的服務路由配置,都配置在此配置項中。一個GlobalConfiguration,全局配置項,一些可應用與全局的配置可放在此配置項中。

  

"ReRoutes": [
    {
      "DownstreamPathTemplate": "/api/values",
      "DownstreamScheme": "http",
      "DownstreamPort": 8052,
      "DownstreamHost": "localhost",
      "UpstreamPathTemplate": "/api/values",
      "UpstreamHttpMethod": [ "Get" ],
      "QoSOptions": {
        "ExceptionsAllowedBeforeBreaking": 3,
        "DurationOfBreak": 10,
        "TimeoutValue": 5000
      }
    },
    {
      "DownstreamPathTemplate": "/api/product",
      "DownstreamScheme": "http",
      "DownstreamPort": 8053,
      "DownstreamHost": "localhost",
      "UpstreamPathTemplate": "/api/product",
      "UpstreamHttpMethod": [ "Get" ],
      "QoSOptions": {
        "ExceptionsAllowedBeforeBreaking": 3,
        "DurationOfBreak": 10,
        "TimeoutValue": 5000
      }
    }
  ],
  "GlobalConfiguration": {
  }

  配置項完畢后,現在需要修改Startup中的代碼

  

  將剛新建的json文件,添加到系統配置項中。然后簡單修改一下ConfigureServices和Configure,主要就是將Ocelot作為中間件注冊。當然你可以按照自己的需求,做更多的擴展。

  

    Program.cs 類文件代碼

   

    至此,全部工作已經完成。然后我們新建兩個api服務,對應configuration.json文件中的下游服務。

    

    然后依次啟動 apinoe,apitwo,和ServcesGateWay,即可看到結果

    

    

 

 

  


免責聲明!

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



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