JMS微服务开发示例(四)把配置文件appsettings.json 部署在网关,共享给其他相同的微服务
通常,多个相同的微服务器,它们的appsettings.json配置文件的内容都是一样的,如果,每次修改配置文件,都要逐个替换,那就太繁琐了,我们可以利用网关的文件共享功能,实现配置文件的统一更新。
网关打开文件共享
首先,在网关程序的当前目录下,新建一个文件夹shares

然后编辑网关的appsettings.json,增加一项ShareFolder,指定./shares问共享文件目录

重启网关程序
在shares文件夹里面,新建一个Helloworld.json文件

内容如下:
{
"port" : 7902
}
微服务实时同步更新appsettings.json
MyHelloworldService项目引用 JMS.ShareFileClient nuget包
打开Program.cs文件,代码改为这样:
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);
var shareClient = new JMS.ShareFileClient(gateways[0]);
//先从网关下载最新的配置文件到本地
shareClient.GetGatewayShareFile("Helloworld.json", "./appsettings.json"); //映射Helloworld.json到./appsettings.json,这样Helloworld.json只要有更新,就下载覆盖本地appsettings.json
shareClient.MapShareFileToLocal("Helloworld.json", "./appsettings.json");
shareClient.StartListen(); //加载本地配置文件
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();
}
}
}
shareClient.MapShareFileToLocal 方法实现了实时同步更新的功能。
JMS微服务开发示例(四)把配置文件appsettings.json 部署在网关,共享给其他相同的微服务的更多相关文章
- 循序渐进学.Net Core Web Api开发系列【6】:配置文件appsettings.json
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.本篇概述 本篇描 ...
- 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发
每天记录一点:NetCore获得配置文件 appsettings.json 用NetCore做项目如果用EF ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
- .net core 读取、修改配置文件appsettings.json
.net core 设置读取JSON配置文件 appsettings.json Startup.cs 中 public class Startup { public Startup(IHostingE ...
- asp.net core mvc 读取配置文件appsettings.json
上一篇我们将了读取自定义配置文件.这篇我们讲一下asp.net core mvc里读取自带的配置文件 appsettings.json 首先创建个asp.net core mvc项目,项目里有Prog ...
- JMS微服务开发示例(一)Hello world
网关部署 1.在网关服务器上,安装.net core 3.1运行环境: 2.到 https://www.cnblogs.com/IWings/p/13354541.html 下载Gateway.zip ...
- Agile.Net 组件式开发平台 - 服务开发示例
在上一篇文章中已经讲解了组件的开发,这篇文章讲解平台服务开发. Agile.Net开发管理平台项目,已经托管在开源中国码云平台(http://git.oschina.net) 登陆码云平台进入项目主页 ...
- 每天记录一点:NetCore获得配置文件 appsettings.json
用NetCore做项目如果用EF ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如SqlSugar,NH,Dapper等,在读取连接字符串的时候,往往把信息保存到一 ...
- .NET Core在类库中读取配置文件appsettings.json
在.NET Framework框架时代我们的应用配置内容一般都是写在Web.config或者App.config文件中,读取这两个配置文件只需要引用System.Configuration程序集,分别 ...
- ASP.NET Core 类库中取读配置文件 appsettings.json
首先引用NuGet包 Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Json Microsoft.Exte ...
随机推荐
- 使用kubeadm在Centos8上部署kubernetes1.18
// 查看系统版本 cat /etc/centos-release CentOS Linux release 8.1.1911 (Core) // 如果系统环境为8.0(云服务器默认最大安装环境为8. ...
- ElasticSearch之系统关键配置
ElasticSearch之系统关键配置 集群名称 在配置文件$ES_HOME/config/elasticsearch.yml中指定,样例如下: cluster: name: logging-pro ...
- Vulntarget-b-wp
Vulntarget-b 环境配置 centos7 用户 密码 root root vulntarget root 宝塔Linux面板http://192.168.0.104:8888/045b276 ...
- 2021-01-04:mysql里的innodb引擎的数据结构,你有看过吗?
福哥答案2021-01-04: 面试官刚开始问我看过mysql源码没,然后问了这个问题.回答B+树,过不了面试官那关. 答案来自<MySQL技术内幕 InnoDB存储引擎 第2版>第四章, ...
- CodeForces 1105D 嵌套BFS
CodeForces 1105D 嵌套BFS 题意 - 给我们一个n*m的阵列,一个格子如果是#则为障碍,若为.则为空,若为数字,则代表这个格子属于该数字代表的玩家. - 给我们每个玩家(不到十个)的 ...
- 让当前元素的width或者height达到父元素的尺寸
double.infifinity 和double.maxFinite可以让当前元素的width或者height达到父元素的尺寸: 区别: 我想成为我的父母所允许的最大的(double.infinit ...
- maven系列:多环境配置与应用
目录 一.多环境配置步骤 定义多环境 使用多环境(构建过程) 二.跳过测试(了解) 应用场景 跳过测试命令 2.3 细粒度控制跳过测试 多环境配置有什么好处? maven提供配置多种环境的设定,帮助开 ...
- 加快脑动脉瘤检测,AI来了
摘要:华为云EI创新孵化Lab联合华中科技大学电信学院.华中科技大学同济医学院附属协和医院放射科在放射学领域的国际顶级期刊Radiology(<放射学>)上共同发表了最新研究成果. 日前, ...
- Gzip之后继者Brotli浅析之CDN厂商的智能压缩,服务器Brotli设置
"智能压缩"按照又拍云的说法是,同时支持 Gzip 和 Brotli 压缩算法.根据用于浏览器开启自动选择不同压缩方式. Gzip 压缩算法 Gzip 基于 DEFLATE 算法, ...
- 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0(中)
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...