.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

时间:2022-05-26 07:26:26

大神张善友 分享过一篇 《.NET Core 在腾讯财付通的企业级应用开发实践》里面就是用.net core 和 Ocelot搭建的可扩展的高性能Api网关。

Ocelot(http://ocelot.readthedocs.io)是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、负载均衡、请求聚合、认证、鉴权、限流熔断等,这些功能只都只需要简单的配置即可完成。

Consul(https://www.consul.io)是一个分布式,高可用、支持多数据中心的服务注册、发现、健康检查和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发。

Ocelot天生集成对Consul支持,在OcelotGateway项目中Ocelot.json配置就可以开启ocelot+consul的组合使用,实现服务注册、服务发现、健康检查、负载均衡。

软件版本

Asp.net Core:2.0

Ocelot:7.1.0-unstable0011(开发时最新)

Consul:1.1.0(开发时最新)

本文分开两部分:1、基于Ocelot搭建Api网关;2、Ocelot+Consul 实现下游服务的服务注册、服务发现、健康检查、负载均衡。

项目结构

Snai.Ocelot 网关:

Snai.ApiGateway Asp.net Core 2.0 Api网关

Snai.ApiServiceA  Asp.net Core 2.0 Api下游服务A

Snai.ApiServiceB  Asp.net Core 2.0 Api下游服务B

ApiServiceA和ApiServiceB其实是一样的,用于负载,为了测试方便,我建了两个项目

aaarticlea/png;base64,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" alt="" />

Consul:

conf 配置目录

data 缓存数据目录,可清空里面内容

dist Consul UI目录

consul.exe 注册软件

startup.bat 执行脚本

aaarticlea/png;base64,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" alt="" />

项目实现

一、基于Ocelot搭建Api网关

新建Snai.Ocelot解决方案

1、搭建Api网关

新建 Snai.ApiGateway 基于Asp.net Core 2.0空网站,在 依赖项 右击 管理NuGet程序包 浏览 找到 Ocelot 版本7.1.0-unstable0011安装

1.1、在项目根目录下新建一个 Ocelot.json 文件,打开 Ocelot.json 文件,配置Ocelot参数,Ocelot.json 代码如下

{
  "ReRoutes": [
    {
      "UpstreamPathTemplate": "/apiservice/{controller}",
      "UpstreamHttpMethod": [ "Get" ],
      "DownstreamPathTemplate": "/apiservice/{controller}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "host": "localhost",
          "port": 5011
        },
        {
          "host": "localhost",
          "port": 5012
        }
      ],
      "LoadBalancerOptions": {
        "Type": "LeastConnection"
      }
    }
  ],   "GlobalConfiguration": {
    "BaseUrl": "http://localhost:5000"
  }
}

如果有多个下游服务,把ReRoutes下 {...} 复制多份,最终如: "ReRoutes":[{...},{...}]

Ocelot参数说明如下,详情查看官网(http://ocelot.readthedocs.io)

ReRoutes 路由配置

UpstreamPathTemplate 请求路径模板
UpstreamHttpMethod 请求方法数组
DownstreamPathTemplate 下游请求地址模板
DownstreamScheme 请求协议,目前应该是支持http和https
DownstreamHostAndPorts 下游地址和端口
LoadBalancerOptions 负载均衡 RoundRobin(轮询)/LeastConnection(最少连接数)/CookieStickySessions(相同的Sessions或Cookie发往同一个地址)/NoLoadBalancer(不使用负载)

DownstreamHostAndPorts配了两个localhost 5011和localhost 5012用于负载均衡,负载均衡已经可以了,但没有健康检查,当其中一个挂了,负载可能还是会访问这样就会报错,所以我们要加入Consul,我们稍后再讲。

请求聚合,认证,限流,熔错告警等查看官方配置说明

GlobalConfiguration 全局配置
BaseUrl 告诉别人网关对外暴露的域名

1.2、修改 Program.cs 代码,读取Ocelot.json配置,修改网关地址为 http://localhost:5000

aaarticlea/png;base64,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" alt="" />

代码如下:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging; namespace Snai.ApiGateway
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }         public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration((context, builder) => {
                    builder.SetBasePath(context.HostingEnvironment.ContentRootPath)
                    .AddJsonFile("Ocelot.json");
                })
                .UseUrls("http://localhost:5000")
                .UseStartup<Startup>()
                .Build();
    }
}

1.3、修改Startup.cs代码,注入Ocelot到容器,并使用Ocelot

aaarticlea/png;base64,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" alt="" />

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Ocelot.DependencyInjection;
using Ocelot.Middleware; namespace Snai.ApiGateway
{
    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOcelot();
        }         // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }             app.UseOcelot().Wait();
        }
    }
}

最终项目结构如下:

aaarticlea/png;base64,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" alt="" />

2、搭建服务Snai.ApiServiceA,Snai.ApiServiceB

新建 Snai.ApiServiceA 基于Asp.net Core 2.0 Api网站

2.1、修改Controllers/ValuesController.cs代码

修改路由为Ocelot 配置的下游地址 apiservice/[controller],注入appsettings.json配置实体,修改Get方法为返回读取配置内容,其他方法可以删除

aaarticlea/png;base64,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" alt="" />

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration; namespace Snai.ApiServiceA.Controllers
{
    [Route("apiservice/[controller]")]
    public class ValuesController : Controller
    {
        public IConfiguration Configuration { get; }         public ValuesController(IConfiguration configuration)
        {
            Configuration = configuration;
        }         // GET api/values
        [HttpGet]
        public string Get()
        {
            return HttpContext.Request.Host.Port + " " + Configuration["AppName"] + " " + DateTime.Now.ToString();
        }
    }
}

2.2、修改appsettings.json配置,加入 "AppName": "ServiceA"

{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  },
  "AppName": "ServiceA"
}

2.3、修改Program.cs代码,修改该服务地址为 http://localhost:5011

aaarticlea/png;base64,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" alt="" />

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging; namespace Snai.ApiServiceA
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }         public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseUrls("http://localhost:5011")
                .UseStartup<Startup>()
                .Build();
    }
}

2.4、新建 Snai.ApiServiceB 基于Asp.net Core 2.0 Api网站,几乎与Snai.ApiServiceA一样,除了 "AppName": "ServiceB",.UseUrls("http://localhost:5012")

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAAAwCAIAAAD8VSNVAAAEFElEQVR4nO2azY6qMBiG50p6C7pxYwyJbE1cGOOOmMiaxIQ1C4kkeg+jxntwBfeBt3MWBfoD5UfamZ5z3icsHJHydfr4fW3li5hmHny/Xuet8fuAv5ovk41vz6/X6/X6DuYm7wL+BYyKCEBfICKwAogIrAAiAiuAiMAKICKwgp4iYiMGmGVIRsTWNDDGoNI8D76RFIERICKwAogIrGDYqnl7xoIFGGH49s08+H5hzQI0M0xE1GZgCMwRgRXoEZHud8NR8DGaMiJMBOPQVZq3Z4gIRqDnJz6spMFIxj/0gKoMNIDHwIAVQERgBRARWAFEBFYAEYEVQERgBT1FdB5p9H6uXTKJn9E79XyzUf0Y2vu1vN+S/LJxyfR0SfLb4Tf/UatDfkvS/dTwbfR0eYiIV4cQ4l8bBsy/Ru80yo6Tj2Ko3Yhvf+eZ9L6jX8NZ3m9JHi4JIX4oj4q7D/NbUh331dibdaBPRD9M+MhpB0vautyfniJO4mfLgDmPNIiP3vu5dj8KQmwqyp4Bc9qsiO39+oDp6dI8KmMG6dfxQ16+5V3wW9nlQQwW0T0GsnA7qqDzSKPH7qMoGLQR51E58VMiNvTrE9iouPswv2zKBqXB+8sQRZT+VHV5GBoWK/61KMr+tRhU/n1atd9iwVWfKmz2r6XTkog7r7wkYt4s1lnqxcegeLP4jOIqLsJO9P2G3jV/Wh2aC9/qkF82Li1/fEGfbVKpuK8O+S08zeTWmiYANJjiEL4eijAE8+q31sF4EZ1HGsQLQogsTeFZMfAs97SeKtPqYp1Rz/g2F+uMacSmd2SxzqiC1QsuPbvHgItKCKMTrQ9zVDKVupS4+5BzlCUYQiozikv4T/phwqUf8SrujjVj2JROoiUMaY5oIrWPFnHniZmJVWcpQfJKqU9VAk3iZxAv2koza2SxzuiXgQXAtyOuoszW+k6qbFTpOD1d6mmpFILPc4RmIz7tla/59xkNIqqrZ1sY9Tlio8pjGCuiqFQt7cm2FblTfYqbaO6899URvaGbLJFcZ9tEpMtw6fj17afp6VLlM1Z2uYMXUVXQmToKvRpElGZ70odVYchXtUX1ISNFbBvmcRmRvvZ8dmoSPyN+PdEvI2pZQumHq4ONBbSkfciLs6oWFCI2Z8S2MKwXsV7muOos2uY8uI1G9SnBG/cYZM9AELG6iq4/ukWU5ojDMPbAr1DdxMmZSMeQL++35B4eBrg126SKSV5LGK3bN3oYJaKc2Aip7cyxg09L6lNSAhP3t+lapFwy+8egj4ikcLFW0HugT0S58EkDKe11i4uVttxDL5Rak/efpSndbJMqIlGFITVoYive4G/NTZp2nwL/JxARWAFEBFaAx8CAFUBEYAUQEVgBRARWABGBFUBEYAV/AC0vc0iGvDdOAAAAAElFTkSuQmCC" alt="" />

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW0AAABgCAIAAABZirQfAAAPF0lEQVR4nO1dz2scyRXeP8EmIRvYpHybXDLGl1GQwyBwNIdVVjIIIwhksgczsMyy7GEJkpaFZVYaFhtv7MMkICTtGi3ORWDJMIf1Hox8skXwVXuZvyKE3DabQ/d016t6r7r6x2i6Z76Px0B3db1+3V3v6/eqqmve2ji4iOWTu0oppdSNTy7Ifq1IKaUavfe0ovfev6WS8Jv3v99wVtEPiEv1E33Zu/H+98QMoVbhxm988+13PxB5/MXvlFJKrX75w7ff/fDVx6GOYHNrY1zx9198RSp+s8ru/zKy7tbdx/qmUurulqafWjLWZiscm6fYA+xSG52jkY6jjlB41Fnun0XFRi29pqNILzzrL2sKg/1n/WX9sLjacv+MVWjsNyqQa+kcafqpkdpxhsK4AneAUUrPECKjO6x8vXHw9Q3FwNHmb3xC2j/ZXPna5Sn6o+XRORrfp7dchwEAkBcsk5QBd28dXNxa0XY0eu/pe8AjAFAidI6smK4EMFgjDIK+X2yMt8EjAFAqJLvkVGDmNTRp0rM1MbMFjwAAUBDAIwAA5AV4BACAvACPAACQF+ARAADyAjwCABY6R1McXukclXO+iQtF8kh9cLo2WC9QIZAW+oBcrrZI5qwWZ1/SGU2bvc2IZzIUY8lUHdmed1t6MDxSH5yunXRr9s4kjhCPWeq2zk+bbW1Pu7d2vtdYSmstRbu3dt6rp65GZjlP9mmlbd3mTO90rXkCzU+4AMdufka656mkC06+j8XxyNRZJLKiSkzC8Ehte4/lkdb2oltXFXjEnFrYOZrk08rEI8Z3J/5tegJtLz2PUOsLcsjL45FysIiqXEwyXzxy2a0kJ4+ka02TaHl5eKTgGOFSeKRMYUCZbEkE1z8S+edStxV6+2LjROORdm/t/DQUjTgCHqlt741Lx06exCNaFTOlIkVjhXRnKIk0l0AjYe9WHJtbH4YK4TrXJ2EmKHaWwiq0qYCLUMxazLe0ZtDFGuHh9uY+93WRo6nlrnMld4L45VH6EdLzSn7KDhO4B+lUaN8uenvc110lInHySLs39s/FxklIBLXtPS0KWGycxFRSH+j*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" alt="" />

到此 基于Ocelot Api网关 搭建完成

3、启动 运行 Snai.ApiServiceA,Snai.ApiServiceB,Snai.ApiGateway项目,在浏览器打开 http://localhost:5000/apiservice/values 地址

刷新页面负载得到ServiceA,ServiceB返回内容。

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

Ocelot已内置负载均衡,但没有健康检查,不能踢除坏掉的服务,所以加入Consul,Consul提供服务注册发现、健康检查,配合Ocelot负载就能发现坏掉的服务,只负载到正常的服务上,下面介绍加入Consul。

二、在Ocelot网关加入Consul,实现服务注册发现、健康检查

1、启动Consul,开启服务注册、服务发现

首先下载Consul:https://www.consul.io/downloads.html,本项目是windows下进行测试,得到consul.exe

再下载Consul配置文件和Consul UI(配置文件适合本例Demo的,可根据具体项目修改调整):https://github.com/Liu-Alan/Ocelot-Consul/tree/master/Consul

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

conf:配置文件目录

data:缓存数据目录,可清空里面内容

dist:Consul UI,用于浏览器查看注册的服务情况;如果用Consul默认自带UI,该目录可以删除,Consul 启动脚本 -ui-dir ./dist 改为 -ui

Consul支持配置文件和Api两种方式服务注册、服务发现,下面主要讲解配置文件方式

Consul 配置文件service.json配置如下:

{
  "encrypt": "7TnJPB4lKtjEcCWWjN6jSA==",
  "services": [
    {
      "id": "ApiServiceA",
      "name": "ApiService",
      "tags": [ "ApiServiceA" ],
      "address": "localhost",
      "port": 5011,
      "checks": [
        {
          "id": "ApiServiceA_Check",
          "name": "ApiServiceA_Check",
          "http": "http://localhost:5011/health",
          "interval": "10s",
          "tls_skip_verify": false,
          "method": "GET",
          "timeout": "1s"
        }
      ]
    },
    {
      "id": "ApiServiceB",
      "name": "ApiService",
      "tags": [ "ApiServiceB" ],
      "address": "localhost",
      "port": 5012,
      "checks": [
        {
          "id": "ApiServiceB_Check",
          "name": "ApiServiceB_Check",
          "http": "http://localhost:5012/health",
          "interval": "10s",
          "tls_skip_verify": false,
          "method": "GET",
          "timeout": "1s"
        }
      ]
    }
  ]
}

两个服务ApiServiceA和ApiServiceB,跟着两个健康检查ApiServiceA_Check和ApiServiceB_Check

由于ApiServiceA和ApiServiceB做负载均衡,现在 "name": "ApiService" 配置一样

修改Snai.ApiServiceA、Snai.ApiServiceB项目 加入health 健康检查地址

打开ValuesController.cs 加入 health

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;

namespace Snai.ApiServiceA.Controllers
{
    [Route("apiservice/[controller]")]
    public class ValuesController : Controller
    {
        public IConfiguration Configuration { get; }

public ValuesController(IConfiguration configuration)
        {
            Configuration = configuration;
        }

// GET api/values
        [HttpGet]
        public string Get()
        {
            return HttpContext.Request.Host.Port + " " + Configuration["AppName"] + " " + DateTime.Now.ToString();
        }

[HttpGet("/health")]
        public IActionResult Heathle()
        {
            return Ok();
        }
    }
}

重新生成运行项目Snai.ApiServiceA、Snai.ApiServiceB

清除Consul/data 内容,新建startup.bat文件,输入下面代码,双击启动Consul,本项目测试时一台机器,所以把 本机IP 改成 127.0.0.1

consul agent -server -datacenter=dc1 -bootstrap -data-dir ./data -config-file ./conf -ui-dir ./dist -node=n1 -bind 本机IP -client=0.0.0.0

再在Consul目录下启动另一个cmd命令行窗口,输入命令:consul operator raft list-peers 查看状态查看状态,结果如下:

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

打开Consul UI:http://localhost:8500 查看服务情况,可以看到ApiServiceA、ApiServiceB 服务,且健康检查都是正常的。

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

由于ApiServiceA、ApiServiceB是在一台机器上两个服务做负载 所以在一个Consul里配置了两个name一样的服务。

如果用两个机器做ApiServiceA负载,本机IP是192.168.0.5,另一台IP是192.168.0.6上,以本机上主Consul

本机 0.5 Consul配置如下:

{
  "encrypt": "7TnJPB4lKtjEcCWWjN6jSA==",
  "services": [
    {
      "id": "ApiServiceA",
      "name": "ApiService",
      "tags": [ "ApiServiceA" ],
      "address": "192.168.0.5",
      "port": 5011,
      "checks": [
        {
          "id": "ApiServiceA_Check",
          "name": "ApiServiceA_Check",
          "http": "http://192.168.0.5:5011/health",
          "interval": "10s",
          "tls_skip_verify": false,
          "method": "GET",
          "timeout": "1s"
        }
      ]
    }
  ]
}

把ApiServiceA和Consul拷到另一个0.6机器,修改Consul配置文件

{
  "encrypt": "7TnJPB4lKtjEcCWWjN6jSA==",
  "services": [
    {
      "id": "ApiServiceA",
      "name": "ApiService",
      "tags": [ "ApiServiceA" ],
      "address": "192.168.0.6",
      "port": 5011,
      "checks": [
        {
          "id": "ApiServiceA_Check",
          "name": "ApiServiceA_Check",
          "http": "http://192.168.0.6:5011/health",
          "interval": "10s",
          "tls_skip_verify": false,
          "method": "GET",
          "timeout": "1s"
        }
      ]
    }
  ]
}

修改启动Consul脚本的IP为192.168.0.6,-node=n2,去掉 -bootstrap,启动Consul,在Consul UI下查看服务是否正常

在192.168.0.5下,把192.168.0.6加到集群中,命令如下:

consul join 192.168.0.6

注意,consul集群中,consul配置文件中的encrypt,一定要相同,否则无法放加入同一个集群

用consul operator raft list-peers查看状态,会发现n1,n2在一个集群中了

Node  ID                                    Address             State     Voter  RaftProtocol

n1    d02c3cd0-d9c8-705b-283e-121a9105cf52  192.168.0.5:8300   leader    true   3

n2    efe954ce-9840-5c66-fa80-b9022167d782  192.168.0.6:8300  follower  true   3

2、配置Ocelot,加入Consul,启用服务健康检查,负载均衡

打开 Snai.ApiGateway 网关下的Ocelot.json文件,加入下面配置

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

ServiceName 是Cousul配置中服务的name名字

UseServiceDiscovery 是否启用Consul服务发现

ServiceDiscoveryProvider 是Consul服务发现的地址和端口

重新生成启动Ocelot网关,到此Ocelot+Consul配置完成

三、运行测试Ocelot+Consul服务发现、负载均衡

打开 http://localhost:5000/apiservice/values 地址,刷新页面负载得到ServiceA,ServiceB返回内容

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

当把ApiServiceB服务关掉,再多次刷新页面,只能得到ServiceA的内容

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

打开Consul UI去看,ServiceB健康检查失败

.net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

Ocolot+Consul实现API网关 服务注册、服务发现、健康检查和负载均衡已完成

Github源码地址:https://github.com/Liu-Alan/Ocelot-Consul

博客地址:http://www.snaill.net/post/5