Ocelot中文文件-微服務ServiceFabric

loogn發表於2018-05-08

如果您在Service Fabric中部署了服務,則通常會使用命名服務來訪問它們。

以下示例展示如何設定一個ReRoute以便在在Service Fabric中工作。 最重要的是ServiceName,它由Service Fabric應用程式名稱和特定服務名稱組成的。 我們還需要將UseServiceDiscovery設定為true,並在GlobalConfiguration中設定ServiceDiscoveryProvider。 這裡的例子顯示了一個典型的配置。 它假定Service Fabric在本地主機上執行,並且命名服務位於19081埠上。

下面的例子來例子本資料夾,所以請檢查它配置是否與你的實際情況相符!

    "ReRoutes": [
        {
        "DownstreamPathTemplate": "/api/values",
        "UpstreamPathTemplate": "/EquipmentInterfaces",
        "UpstreamHttpMethod": [
            "Get"
        ],
        "DownstreamScheme": "http",
        "ServiceName": "OcelotServiceApplication/OcelotApplicationService",
        "UseServiceDiscovery" :  true
        }
    ],
    "GlobalConfiguration": {
        "RequestIdKey": "OcRequestId",
        "ServiceDiscoveryProvider": {
            "Host": "localhost",
            "Port": 19081,
            "Type": "ServiceFabric"
        }
    }
}

如果您使用無狀態/ guest exe服務,ocelot將能夠通過命名服務進行代理,而無需其他任何操作。 但是,如果您使用的是有狀態/actor服務,則客戶端請求必須傳送PartitionKind和PartitionKey查詢字串。

GET http://ocelot.com/EquipmentInterfaces?PartitionKind=xxx&PartitionKey=xxx

Ocelot無法為您解決這個問題。

相關文章