【问题标题】:Ocelot Consul - Error Leasing load balancerOcelot Consul - 错误租赁负载均衡器
【发布时间】:2018-09-12 15:46:29
【问题描述】:

我正在使用 11.0.2 版的 Ocelot 和 Ocelot.Provider.Consul。下面是我的 ocelot.json 文件。

{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/v1/vaults",

      "ServiceName": "testservice",  
      //"LoadBalancer": "LeastConnection",
      //"LoadBalancerOptions": {
      //  "Type": "LeastConnection"
      //},
      "UpstreamPathTemplate": "/api/values",
      "UpstreamHttpMethod": [ "Get" ]
    }
  ],
  "GlobalConfiguration": {
    "RequestIdKey":  "OcelotRequestId", 
    "ServiceDiscoveryProvider": {
      "Host": "localhost",
      "Port": 8500,
      "Type": "Consul"
    }
  }
}

当我提交请求时,我得到以下日志信息。

requestId: 8000001a-0004-ff00-b63f-84710c7967bb, previousRequestId: no previous request id, message: Unable to use service Address: http://localhost and Port: 56736 as it is invalid. Address must contain host only e.g. localhost and port must be greater than 0
dbug: Ocelot.LoadBalancer.Middleware.LoadBalancingMiddleware[0]
      requestId: 8000001a-0004-ff00-b63f-84710c7967bb, previousRequestId: no previous request id, message: there was an error leasing the loadbalancer, setting pipeline error
warndbug: Ocelot.LoadBalancer.Middleware.LoadBalancingMiddleware[0]
      requestId: 8000001a-0004-ff00-b63f-84710c7967bb, previousRequestId: no previous request id, message: There were no services in NoLoadBalancer
warn: Ocelot.Responder.Middleware.ResponderMiddleware[0]
      requestId: 8000001a-0004-ff00-b63f-84710c7967bb, previousRequestId: no previous request id, message: Error Code: ServicesAreEmptyError Message: There were no services in NoLoadBalancer errors found in ResponderMiddleware. Setting error response for request path:/api/values, request method: GET
dbugdbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
      requestId: 8000001a-0004-ff00-b63f-84710c7967bb, previousRequestId: no previous request id, message: ocelot pipeline finished

我有什么配置错误吗?

【问题讨论】:

    标签: c# consul


    【解决方案1】:

    我在 Consul 地址字段中使用 http://localhost 向 Consul 注册了我的服务。我删除了 uri.Scheme 并将 DownstreamScheme 添加到我的 ocelot 配置文件中,一切正常。

    感谢@TomPallister 在Ocelot 的github 存储库中提供的帮助。

    【讨论】:

    • 谢谢您的回复,我也遇到了同样的问题,经过您的回答,我解决了。
    猜你喜欢
    • 2021-07-19
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2021-10-14
    • 2015-03-14
    相关资源
    最近更新 更多