【问题标题】:ocelot change configuration without restarting appocelot 在不重启应用的情况下更改配置
【发布时间】:2020-03-09 03:06:03
【问题描述】:

我正在尝试在不重新启动应用程序的情况下更改 ocelot 配置,并且我不想使用 Consul。 试图寻找简单的解决方案。 我正在尝试什么。

注册配置文件为reloadOnChange:true

public Startup(IHostingEnvironment env)
        {
            var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();
            builder.SetBasePath(env.ContentRootPath)
                   .AddJsonFile("configuration.json", optional: false, reloadOnChange: true)
                   .AddEnvironmentVariables();

            Configuration = builder.Build();
        }

        public IConfigurationRoot Configuration { get; }

并将配置添加为单例

services.AddSingleton<IConfiguration>(Configuration);

还编写了服务,它使我能够使用服务更改此单例配置。

[Route("api/[controller]")]
    public class XBConfigurationController : Controller
    {
        public XBConfigurationController(IConfiguration configuration)
        {
            _configuration = configuration as IConfigurationRoot;
        }

        private readonly IConfigurationRoot _configuration;

        // GET: /<controller>/
        [HttpGet]
        public IActionResult Get()
        {
            _configuration.Reload();
            return Ok();
        }
    }

怎么了? ocelot为什么不刷新它的内部配置?

【问题讨论】:

    标签: c# asp.net-core ocelot


    【解决方案1】:

    我使用管理 api 解决了我的问题。

    services.AddOcelot(Configuration).AddPolly().AddAdministration("/administration", "secret");
    

    并将base url添加到ocelot配置文件中。

     "GlobalConfiguration": {
        "RequestIdKey": "OcRequestId",
        "AdministrationPath": "/administration",
        "BaseUrl": "http://localhost:54864"
      }
    

    更改代码后执行此步骤

    1. 使用此服务生成令牌http://localhost:54864/administration/connect/token

    2. 使用此 api http://localhost:54864/administration/configurationGet 方法和 Bearer Token 获取当前配置

    3. 将修改后的配置设置为这个api的json输入http://localhost:54864/administration/configuration

    您可以获得的其他信息

    ocelot.postman_collection.json

    Ocelot Administration Api Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多