zoukankan      html  css  js  c++  java
  • .netcore的微服务学习(三)--网关(gateway)之Ocelot+Consul学习

    一。我们用Ocelot加consul一起使用,服务的注册发现,而不是现在的单机版手动配置服务地址

    我们写Ocelot的配置,这个是时候 我们要引用Ocelot.Provider.Consul这个包,然后又多一个扩展addConsul()这个扩展方法,如下startup的配置

    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.Hosting;
    using Microsoft.Extensions.Logging;
    using Ocelot.DependencyInjection;
    using Ocelot.Middleware;
    using Ocelot.Provider.Consul;
    
    namespace OcelotDemo
    {
        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.AddOcelot().AddConsul();
            }
    
            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                app.UseOcelot();
            }
        }
    }

    配置文件的配置如下

    //*****************************单地址多实例负载均衡+Consul********************************
    {
      "ReRoutes": [
        {
          "DownstreamPathTemplate": "/api/{url}", //服务地址--url变量
          "DownstreamScheme": "http",
          "UpstreamPathTemplate": "/TestOcelotConsul/{url}", //网关地址--url变量
          "UpstreamHttpMethod": [ "Get", "Post" ],
          "ServiceName": "TestConsulService", //consul服务名称,要对上consul组名称,集群的组
          "LoadBalancerOptions": {
            "Type": "RoundRobin" //轮询      LeastConnection-最少连接数的服务器   NoLoadBalance不负载均衡
          },
          "UseServiceDiscovery": true //服务发现
        }
      ],
      "GlobalConfiguration": {
        "BaseUrl": "http://127.0.0.1:5003", //网关对外地址
        "ServiceDiscoveryProvider": {
          "Host": "localhost",
          "Port": 8500,
          "Type": "Consul" //由Consul提供服务发现
        }
      }
    }

     二,配置好后,当然要启动consul,服务和网关,这个请看前两篇,然后我们直接访问一下地址

    我们访问配置好的网关地址:http://localhost:5003/TestOcelotConsul/User/Get,然后会自动返回注册consul的服务地址

  • 相关阅读:
    文字溢出隐藏并以...展示
    定时器
    angular新建组件的组成部分
    angular五个常用语法
    element-ui 分页设置之低于10条显示完整分页页码
    new关键字执行过程
    js运用sort对json 数组进行排序
    正则验证积累
    jq监听
    gitHub命令大全
  • 原文地址:https://www.cnblogs.com/May-day/p/13375203.html
Copyright © 2011-2022 走看看