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

相關文章
相關標籤/搜索