2.3微服务-ocelot

网关 ocelot

负载均衡

安全问题:端口太多,调用关系复杂、不能直接调用实例,

服务治理:鉴权授权、限流、缓存、熔断、超时

 

一、项目安装ocelot nuget包

1
<PackageReference Include="Ocelot" Version="19.0.2" />

 

二、注释原来api管道模型,ocelot接管,添加配置文件configuration.json文件

 //builder.Services.AddControllers(); //app.UseAuthorization(); //app.MapControllers();

builder.Services.AddOcelot(); //添加ocelot服务组件
await app.UseOcelot();//替换管道模型
1
builder.Configuration.AddJsonFile("configuration.json", optional: false, reloadOnChange: true);//添加配置文件

 

三、编写网关配置文件configuration.json

 -- /通配路由

 -- "Priority": 0 // 路由权重,通配默认0,不可修改

 -- 负载均衡策略:RoundRobin 轮询 / LeastConnection 最少连接数 / NoLoadBalance 不负载均衡 / CookieStickySessions 会话粘滞

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
  "Routes": [
    {
      "DownstreamPathTemplate": "/api/{url}", //服务地址 url变量
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [ //转发地址
        {
          "Host": "127.0.0.1",
          "Port": 5000
        }
      ],
      "UpstreamPathTemplate": "/T5000/{url}", //网关地址 url变量
      "UpstreamHttpMethod": [ "Get", "Post" ] //支持请求类型
    },
    {
      "UpstreamPathTemplate": "/{url}",
      "UpstreamHttpMethod": [ "Get", "Post" ],
      "DownstreamPathTemplate": "/{url}", //通配路由
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "127.0.0.1",
          "Port": 5001
        },
        {
          "Host": "127.0.0.1",
          "Port": 5002
        },
        {
          "Host": "127.0.0.1",
          "Port": 5003
        }
      ],
      "LoadBalancerOptions": { //负载均衡策略
        "Type": "RoundRobin"   //RoundRobin 轮询 / LeastConnection 最少连接数 / NoLoadBalance 不负载均衡 / CookieStickySessions 会话粘滞
      },
      //"LoadBalancerOptions": {
      //  "Type": "CookieStickySessions",
      //  "Key": "ASP.NET_SessionId",
      //  "Expiry": 1800000
      //},
      "Priority": 0 // 路由权重,通配默认0,不可修改
    }
  ]
}

 

四、启用网关实例、测试成功

posted @   有只烤鸡  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示