首先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