JMS微服务开发示例(四)把配置文件appsettings.json 部署在网关,共享给其余相同的微服务

一般,多个相同的微服务器,它们的appsettings.json配置文件的内容都是同样的,若是,每次修改配置文件,都要逐个替换,那就太繁琐了,咱们能够利用网关的文件共享功能,实现配置文件的统一更新。html

网关打开文件共享

首先,在网关程序的当前目录下,新建一个文件夹sharesjson

 

而后编辑网关的appsettings.json,增长一项ShareFolder,指定./shares问共享文件目录服务器

 

 

 重启网关程序app

在shares文件夹里面,新建一个Helloworld.json文件微服务

 

 

 内容以下:ui

{
    "port" : 7902
}

微服务实时同步更新appsettings.json

MyHelloworldService项目引用 Microsoft.Extensions.Configuration.Json nuget包spa

打开Program.cs文件,代码改成这样:3d

 

using JMS;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;

namespace MyHelloworldService
{
    class Program
    {
        static void Main(string[] args)
        {           
            var gateways = new NetAddress[] {
                new NetAddress("192.168.40.131" , 7900)
            };

            ServiceCollection services = new ServiceCollection();
            services.AddLogging(loggingBuilder =>
            {
                loggingBuilder.SetMinimumLevel(LogLevel.Debug);
                loggingBuilder.AddConsole(); 
            });

            var msp = new MicroServiceHost(services);
            //先从网关下载最新的配置文件到本地
            msp.GetGatewayShareFile(gateways[0], "Helloworld.json", "./appsettings.json");

            //映射Helloworld.json到./appsettings.json,这样Helloworld.json只要有更新,就下载覆盖本地appsettings.json
            msp.MapShareFileToLocal(gateways[0], "Helloworld.json", "./appsettings.json");

            //加载本地配置文件
            var builder = new ConfigurationBuilder();
            builder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false);
            var configuration = builder.Build();

            var port = configuration.GetValue<int>("port");

            msp.Register<HelloworldController>("Hello world");
            msp.RegisterScheduleTask<AutoRun>();
            msp.Build(port, gateways)
                .Run();
        }
    }
}

 

msp.MapShareFileToLocal 方法实现了实时同步更新的功能。code

 上一篇 示例(三)    下一篇 示例(五)tokenhtm

相关文章
相关标签/搜索