第六篇 网关ocelot,搭配consul。达到负载均衡的效果

首先nuget

Ocelot版本5.6.0-unstable0028

Consul版本0.7.2.6

根目录新建一个 Ocelot.json

{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/{url}",//任意的url
      "DownstreamScheme": "http",//
      "UpstreamPathTemplate": "/VideoInspectionConfig/{url}",//可配置
      "UpstreamHttpMethod": [ "Get", "Post", "Delete", "Put" ],
      "ServiceName": "TestCoreWebAPI.VideoInspectionConfig",//跟前几篇中consul中注册的名字要一样
      "LoadBalancer": "RoundRobin",
      "UseServiceDiscovery": true,
      "ReRouteIsCaseSensitive": false
    }

  ],
  "GlobalConfiguration": {
    "ServiceDiscoveryProvider": {
      "Host": "114.115.215.189",//consul的服务器
      "Port": 8500, //consul端口,      "Token": "245d0a09-7139-bbea-aadc-ff170a0562b1" // consul acl里的toekn,如果没配置acl,这个节点不需要
    }

  }
}

在 Program.cs里注册Ocelot.json

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;

namespace WebAPIGateway
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
             .ConfigureAppConfiguration((context, builder) =>
             {
                 builder.AddJsonFile("Ocelot.json");
             });
    }
}

  在Startup.cs里配置

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Ocelot.DependencyInjection;
using Ocelot.Middleware;

namespace WebAPIGateway
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddOcelot(Configuration);
        }

        // 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.UseMvc();

            app.UseOcelot().Wait();
        }
    }
}

  现在就可以实现 ocelot和consul的 搭配了,以后有了新的服务。如果要玩转这套,请先看之前的文章把consul注册好才能通过ocelot的配置进行服务切换,ocelot里有很多功能,包括对consul的负载均衡等,详细的可自己查资料了解.

如果不懂,可以扫二维码交流

原文地址:https://www.cnblogs.com/iversonlzy/p/12604120.html

时间: 2024-11-25 18:23:34

第六篇 网关ocelot,搭配consul。达到负载均衡的效果的相关文章

API网关spring cloud gateway和负载均衡框架ribbon实战

通常我们如果有一个服务,会部署到多台服务器上,这些微服务如果都暴露给客户,是非常难以管理的,我们系统需要有一个唯一的出口,API网关是一个服务,是系统的唯一出口.API网关封装了系统内部的微服务,为客户端提供一个定制的API.客户端只需要调用网关接口,就可以调用到实际的微服务,实际的服务对客户不可见,并且容易扩展服务. API网关可以结合ribbon完成负载均衡的功能,可以自动检查微服务的状况,及时剔除或者加入某个微服务到可用服务列表.此外网关可以完成权限检查.限流.统计等功能.下面我们将一一完

【中级篇】Linux中部署LVS负载均衡群集

LVS负载均衡群集 1.          实验需求: 1)     2台服务器部署HTTPD服务 2) 1台做负载调度器 3) 搭建负载均衡,测试其效果. 2.          实验环境: Linux服务器系统版本:CentOS-6.5 -S02 IP:192.168.10.15  ( httpd ) Linux服务器系统版本:CentOS-6.5 -S03 IP : 192.168.10.18  ( httpd ) Linux服务器系统版本:  RedHat6.5     IP1 :192

.Net Core的API网关Ocelot的使用(二)[负载,限流,熔断,Header转换]

网关的负载均衡 当下游拥有多个节点的时候,我们可以用DownstreamHostAndPorts来配置 { "UpstreamPathTemplate": "/Api_A/{controller}/{action}", "DownstreamPathTemplate": "/api/{controller}/{action}", "DownstreamScheme": "https",

【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

VRRP在三层交换机上的虚拟网关设置与链路的负载均衡,浮动路由

一:创建VLAN10 20 30 40 100 200 并将PC机加入不同的vLan.[sw1]vlan batch 10 20 30 40 100 200[sw1]int g0/0/1 [sw1-GigabitEthernet0/0/1]port link-type access [sw1-GigabitEthernet0/0/1]port default vlan 10[sw1-GigabitEthernet0/0/1]int g0/0/2[sw1-GigabitEthernet0/0/2]

负载均衡 之 nginx+consul+consul template

前几篇先是记载了如何通过nginx配置服务负载均衡,后面记载了如何通过 ocelot 配置 服务负载均衡,分别介绍了用webapi注册服务以及配置文件注册服务,通过ocelot webapi + consul 配置负载均衡系列学习完毕. 然而nginx负载均衡没有服务发现,依然不能用生产环境,本篇将介绍如何通过 nginx+consul 配置多台服务器的负载均衡并支持服务发现. 试验背景和目的:一个微服务,有一个网关入口,如果网关出现故障,那么整个微服务马上瘫痪,那么我们有必要把网关布署在多台服

.Net微服务实践(四)[网关]:Ocelot限流熔断、缓存以及负载均衡

目录 限流 熔断 缓存 Header转化 HTTP方法转换 负载均衡 注入/重写中间件 后台管理 最后 在上篇.Net微服务实践(三)[网关]:Ocelot配置路由和请求聚合中我们介绍了Ocelot的配置,主要特性路由以及服务聚合.接下来,我们会介绍Ocelot的限流.熔断.缓存以及负载均衡. 限流 我们先来看限流的配置 Reroute节点中的配置如下: { "DownstreamPathTemplate": "/api/orders", "Downstr

.NET Core开源API网关 – Ocelot中文文档

原文:.NET Core开源API网关 – Ocelot中文文档 Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly Tracing集成.这些功能只都只需要简单的配置即可完成,下面我们会对这些功能的配置一一进行说明. 介绍 简单的来说Ocelot是一堆的asp.net core middleware组成的一个管道.当它拿到请求之后会用一个reque

HAproxy负载均衡-配置篇

安装HAProxy及环境配置 红帽的yum源已经为我们提供了最新版本的haproxy,所以我们只需要yum安装即可 [[email protected] ~]# yum install haproxy -y 配置haproxy的日志 编辑rsyslog [[email protected] haproxy]# vim /etc/rsyslog.conf 将以下参数开启 $ModLoad imudp $UDPServerRun 514 加入参数: *.info;mail.none;authpriv