基于netcore的微服务——Ocelot结合Consul配置文件(4)

本文介绍了如何使用Ocelot作为API网关,并结合Consul进行服务发现和负载均衡。通过引入Consul,可以避免在每台服务器上手动配置,实现一键化配置,简化了微服务架构中的路由管理。配置示例展示了如何配置ReRoutes,以及如何在GlobalConfiguration中设置Consul服务发现提供者。

引入包

    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
    <PackageReference Include="Ocelot" Version="7.0.8" />

一.只使用Ocelot

当只使用Ocelot需要对每台服务器都进行配置,会很麻烦

{
  "ReRoutes": [
    {
      //Ocelot转发     到本地的5001端口的地址     ...../MsgService/abc   ----》  localhost:5001/api/abc
      "DownstreamPathTemplate": "/api/{url}",
      //请求的方式
      "DownstreamScheme": "http",
      //请求的主机和端口
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 5001
        }
      ],
      //客户端请求的路由
      "UpstreamPathTemplate": "/MsgService/{url}",
      //允许的请求方式
      "UpstreamHttpMethod": [ "Get", "Post" ]
    }
  ]
}

二、结合Consul

结合Consul使用,不用去再一次把每台服务器配置一遍,
只需要结合Consul就能一键化配置

{
  "ReRoutes": [
    {
      //Ocelot转发     到本地的5001端口的地址     ...../MsgService/abc   ----》  localhost:5001/api/abc
      "DownstreamPathTemplate": "/api/{url}",
      //请求的方式
      "DownstreamScheme": "http",
      //请求的服务名
      "ServiceName": "MsgService",
      "LoadBalancerOptions": {
        //对于被发现服务器的使用方式
        "Type": "RoundRobin"
      },
      //开启服务发现
      "UseServiceDiscovery": true,
      //客户端请求的路由
      "UpstreamPathTemplate": "/MsgService/{url}",
      //允许的请求方式
      "UpstreamHttpMethod": [ "Get", "Post" ]
    },
    {
      "DownstreamPathTemplate": "/api/{url}",
      "DownstreamScheme": "http",
      "ServiceName": "ProductService",
      "LoadBalancerOptions": {
        "Type": "RoundRobin"
      },
      "UseServiceDiscovery": true,
      "UpstreamPathTemplate": "/ProductService/{url}",
      "UpstreamHttpMethod": [ "Get", "Post" ]
    }
  ],
  //全局配置Consul服务器
  "GlobalConfiguration": {
    "ServiceDiscoveryProvider": {
      "Host": "localhost",
      "Port": 8500
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有诗亦有远方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值