Ocelot學習筆記

 

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

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

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

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

  而後能夠經過nuget安裝Ocelot  api

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中的代碼spa

  

  將剛新建的json文件,添加到系統配置項中。而後簡單修改一下ConfigureServices和Configure,主要就是將Ocelot做爲中間件註冊。固然你能夠按照本身的需求,作更多的擴展。.net

  

    Program.cs 類文件代碼code

   

    至此,所有工做已經完成。而後咱們新建兩個api服務,對應configuration.json文件中的下游服務。中間件

    

    而後依次啓動 apinoe,apitwo,和ServcesGateWay,便可看到結果

    

    

相關文章
相關標籤/搜索