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 ...
随机推荐
- Fdfs上传的图片批量删除
介绍: 因为计划利用fdfs上传的图片会有很多,所以在考虑到重复利用的情况下,把半年前的图片删除掉. 1)编写清理图片脚本clear.sh 在/home/data目录下创建 clear.sh脚本 内容 ...
- 神经网络优化篇:梯度检验应用的注意事项(Gradient Checking Implementation Notes)
梯度检验应用的注意事项 分享一些关于如何在神经网络实施梯度检验的实用技巧和注意事项. 首先,不要在训练中使用梯度检验,它只用于调试.意思是,计算所有\(i\)值的\(d\theta_{\text{ap ...
- JPA object references an unsaved transient instance - save the transient instance before flushing
nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.Transi ...
- 动态规划问题(六)最长公共子序列(LCS)
问题描述 给你两个字符串,要求得到这两个字符串的最长公共子序列长度. 比如:对于输入的字符串 S1 "AGGTAB" 和 S2 "GXTXAYB",它们 ...
- 5分钟搞定vue3函数式弹窗
前言 最近接到一个需求,需要在一些敏感操作进行前要求输入账号和密码,然后将输入的账号和密码加到接口请求的header里面.如果每个页面都去手动导入弹窗组件,在点击按钮后弹出弹窗.再拿到弹窗返回的账号密 ...
- 【小白学YOLO】YOLOv3网络结构细致解析
摘要:本文将详细介绍Yolov3的网络结构相关内容. Yolov3 网络结构 在博客"Yolo发展历史及网络结构"中我们已经详细的解释了Yolov1的网络结构,并简要的提到了Yol ...
- 再谈BOM和DOM(3):DOM节点操作-元素样式修改及DOM内容增删改查
操作节点,先得选择节点,就得知道节点选择器与DOM节点查找 DOM节点选择器 W3C提供了比较方便的定位节点的方法和属性 getElementById() 一个参数:元素标签的ID getElemen ...
- ipa如何安装到iphone
Sign In - Apple app管理中心: https://appstoreconnect.apple.com/ apple ID管理中心: Manage your Apple ID 工具只 ...
- Spring 太肥、太慢?你受不了?那 Solon Java Framework 就是你的西施
Solon 是什么? Java 生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模).与其他框架相比,它解决了两个重要的痛点:启动慢,费内存.2023 ...
- Axure 安装使用 FontAwesome
Axure 安装使用 FontAwesome. 字体下载:https://www.bootcss.com/p/font-awesome/ 解压后,到 font 目录,双击 FontAwesome.ot ...