.NET微服务、API 网关Ocelot 与 Consul 服务发现完整实例

16 篇文章 3 订阅

一、 先做Consul包下载,运行,和 应用 注册到 Consul 部分

关于实现Consul 服务发现部分,因为内容有点多,在我上一篇文章:

https://blog.csdn.net/qq_16005627/article/details/128223592

二、网关Ocelot 集成Consul 

新建一个项目webgateway

安装nuget:Ocelot.Provider.Consul

 新增配置文件:ocelot.json

1fc2866d40f54d05a6c8a687206d67d3.png

ocelot.json写入内容:

{
  "Routes": [
    {
      "UseServiceDiscovery": true, // 使用服务发现
      "DownstreamPathTemplate": "/{url}",
      "DownstreamScheme": "http",
      "ServiceName": "iot.webadmin", // 服务名称-这个要跟应用注册时写的名字一致,否则无效
     //配置负载均衡
      "LoadBalancerOptions": {
        "Type": "RoundRobin" //负载均衡方式
      },
      "UpstreamPathTemplate": "/{url}",
      "UpstreamHttpMethod": [ "Get", "Post" ],
      "ReRoutesCaseSensitive": false // 路由大小写敏感设置
    }
  ],

  "GlobalConfiguration": { // 网关全局配置
    "BaseUrl": "http://localhost:8000",//当前项目webgateway网关的地址
    "ServiceDiscoveryProvider": { // 服务发现的配置
      "Scheme": "http",
      "Host": "localhost",//Consul 服务的访问ip
      "Port": 8500,//Consul 服务的访问端口
      "Type": "Consul",
      "ConfigurationKey": "node-1"
    }
  }
}

地址统一用localhost,不然是不是会出问题 

Program.cs 增加两项配置

builder.Services.AddOcelot(new ConfigurationBuilder().AddJsonFile("ocelot.json", true, true).Build()).AddConsul().AddConfigStoredInConsul();

app.UseOcelot();

如图:45f29187f35f4aa0923e70b0d4bc7736.png

 以前配置文件完成,把下面三个东西,都运行起来

网关地址是:http://localhost:8000/

应用地址是:http://localhost:8070/

consul地址是:http://localhost:8500/

访问网关:http://localhost:8000/login/index 

(会通过ocelot.json配置中的"ServiceName": "iot.webadmin" 找到consul中注册上来的应用服务 "iot.webadmin"并找到对应的访问地址 http://localhost:8070/login/index ,并转发到 应用服务)

原应用访问:

32246e4510394091810a5da43442a09b.png

通过 网关访问:

测试:返回结果与直接访问应用一致,就表示成功了 

7fbd12a61de34b4aa65accad42ddbb35.png

 到这里就成功了!!

当然测试完成之后就使用网关的8000地址访问了, 原应用的8070端口对外不用应用这个地址了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.net亦洪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值