Ocelot的使用(结合Consul服务注册和发现)

Ocelot之前我们转发上下游的请求转发配置都是通过ocelot.json配置文件里写的,现在通过和Consul搭配来实现服务的请求转发,不用再ocelot.json上进行配置了。

这是对之前的几篇文章的继续,所以需要从前面的几篇文章继续下来的。

继续修改之前的Gateway项目,修改其中的ocelot.json配置

{
  "ReRoutes": [
    {
      "UpstreamPathTemplate": "/Service2/{url}",
      "UpstreamHttpMethod": [ "Get", "Post" ],

      "UseServiceDiscovery": true,
      "ServiceName": "demoName",

      "DownstreamPathTemplate": "/api/{url}",
      "DownstreamScheme": "http",
      //"DownstreamHostAndPorts": [
      //  {
      //    "Host": "localhost",
      //    "Port": 5001
      //  }
      //],
    }
  ],
  "GlobalConfiguration": {
    "ServiceDiscoveryProvider": {
      "Host": "127.0.0.1",
      "Port": 8500,
      "Type": "Consul"
    }
  }
}

其中在GlobalConfiguration配置节点中,开启了ServiceDiscoveryProvider服务发现,我们的Consul运行在8500端口,使用指定了ip和端口,以及type是通过Consul来实现服务发现的。

在路由中也需要开启服务发现      "UseServiceDiscovery": true

设置ServiceName为Consul中设置的name

修改Consul的配置文件

{
  "service": {
    "id": "consul-service-test",
    "name": "demoName",
    "tags": [ "test" ],
    "address": "127.0.0.1",
    "port": 5001,
    "checks": [
      {
        "http": "http://127.0.0.1:5001/api/Health/Index",
        "interval": "10s"
      }
    ]
  }
}

这样我们将之前设定的DownstreamHostAndPorts注释掉了,运行此Gateway项目端口指定5000,通过http://localhost:5000/Service2/values/GetById?id=123

还是可以访问到的运行在端口5001的Service1的webapi的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值