首页 > 其他分享 >.net core(微服务学习)-使用 AgileConfig轻量配置中心

.net core(微服务学习)-使用 AgileConfig轻量配置中心

时间:2023-09-13 16:37:20浏览次数:47  
标签:webapi core 服务 配置文件 配置 修改 net 轻量 AgileConfig

由于之前项目维护的时候有多个API服务,发布时候又做了高可用多主机均衡负载,环境又有多套,当部署新代码的时候如果有新增配置项需要修改N个环境和服务器实属折磨人

 

 

 

 

我们知道每个.net core中都有一个appsettings.json的配置文件,由于之前项目有3个环境,一共有4台主机,每个主机下面又有4个服务,

如果修改内容多的时候,所有服务都要更新并修改配置文件,一共要改16(4台主机每台4个服务)个配置文件,维护起来太难受了

所想着改造一波,因为目前微服务中也提及了很多注册中心和配置中心(Apollo 或者Nacos) 但是官方都没有明面表示支持Postgres,因为公司项目使用的Postgres

这里最后采用了AgileConfig轻量配置中心 如果使用配置中心后架构就如下所示了

到时候不管重新部署还是更新配置项目就很简单

 

我们只需要将DEV环境的配置项目修改将新增配置项同步到其他环境即可

 

 

 

 

这里我们将常用数据库连接,redis连接等新建了一个Common类,其他四个服务的配置项目关联common类,那么第一次部署后,同步common配置,将内容修改为当前环境的内容后就不会去同步和修改common类了

 然后每次有新增就去同步每个服务私有的配置项内容

 

引入配置中心,就只需要再代码中添加如下代码

 

1.修改appsetting.json

  "AgileConfig": {
    "appId": "xsw_webapi",
    "secret": "webapi",
    "nodes": "http://114.117.168.70:5000", //配置中心的地址
    "name": "xsw_webapi",
    "tag": "webapi",
    "env": "DEV",
    "serviceRegister": { //服务注册信息,如果不配置该节点,则不会启动任何跟服务注册相关的服务 可选
      "serviceId": "test_webpapi", //服务id,全局唯一,用来唯一标示某个服务
      "serviceName": "test_webpapi_01", //服务名,可以重复,某个服务多实例部署的时候这个serviceName就可以重复
      "ip": "127.0.0.1", //服务的ip
      "port": 8004, //服务的端口
      "metaData": [ //携带服务的其他元数据 可选
        "2023-09-08"
      ]
    }
  }

然后再Programe配置项内添加

 

.ConfigureAppConfiguration((hostingContext, config) =>//指定应用的配置提供程序
{

    var configClient = new ConfigClient();
    //使用AddAgileConfig配置一个新的IConfigurationSource
    config.AddAgileConfig(configClient);
})

 

因为项目里使用了服务发现所所以

 

 在Startup中也添加了发现和注册

  services.AddAgileConfig();

 

最后运行API就能依托配置中心来管理配置文件了,其他API的服务修改方式和此一样,只是需要将appsettings.json中的appid和appsecret换成对应的内容

 

标签:webapi,core,服务,配置文件,配置,修改,net,轻量,AgileConfig
From: https://www.cnblogs.com/JockMary/p/17689741.html

相关文章

  • 阿里云轻量应用服务器和ECS有什么区别?
    阿里云服务器ECS和轻量应用服务器有什么区别?云服务器ECS是明星级云服务器,轻量应用服务器可以理解为简化版的云服务器ECS,轻量适用于单机应用,云服务器ECS适用于集群类高可用高容灾应用,阿里云百科来详细说下阿里云轻量应用服务器和云服务器的区别,包括运维区别、镜像系统、使用场景、网......
  • 关于AD原理图中的Floating Net Label错误
    编译之后提示如下:直接双击错误跳转这是说标签浮空,没有连接到导线上这里将导线和电阻重新连接,就解决了报错还有另外一种常见的错误如下:这是标签没有连接到导线上,放大原理图并选中标签,结果如下标签左下角有个十字,必须将它放到导线上,放完之后即可解决问题(如果不好调整可以设置一下栅格......
  • VDSR-Accurate Image Super-Resolution Using Very Deep Convolutional Networks阅读
    AccurateImageSuper-ResolutionUsingVeryDeepConvolutionalNetworks(VDSR)阅读笔记(22.10.07)使用深度卷积网络的精确图像超分辨率摘要:使用一个非常深的卷积神经网络,灵感来源于VGG-Net。本文发现,网络深度增加可以显著提高准确性。本文模型最终使用了20个权重层。通过在深度网......
  • VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE
    (VGG)VERYDEEPCONVOLUTIONALNETWORKSFORLARGE-SCALEIMAGERECOGNITION阅读笔记(22.10.05)摘要:本文研究在大规模图像识别设置中卷积网络深度对其准确性的影响。主要贡献是对使用(3,3)卷积核的体系结构增加深度的网络进行全面评估,结果表明,深度推到16-19可以实现对现有技术配置的显......
  • NetCore 之 log4net 实战
    上一篇主要详细介绍log4net相关的一些配置项,本章意在从实战角度详解log4net在NetCore中使用。1、创建Netcoreconsolapplication通过Nugetpackage安装log4net(Microsoft.Extensions.Logging.Log4Net.AspNetCore),Hosting(Microsoft.Extensions.Hosting)及DI(Microsoft.Extens......
  • Java树形菜单_轻量级js树形插件_jsTree树形插件
    //插件效果//代码<!DOCTYPEhtml><html><head><title>JS轻量级树形插件</title><metacharset="utf-8"><linkrel="stylesheet"href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/def......
  • CoreMotion框架--加速计和陀螺仪
    iOS加速计是三轴加速计,可以监测三维空间中的运动和重力。三轴坐标系统:       *手机顶部向上时,正对手机屏幕,手机屏幕向左是X轴正方向。*沿手机屏幕向上是Y轴正方向。*垂直屏幕向外是Z轴正方向。 当手机静止不动时,地球引力将会给予手机1g加速度。......
  • .net6webapi捕获全局异常
    .net6webapi捕获全局异常usingMicrosoft.AspNetCore.Http;usingMicrosoft.Extensions.Logging;usingNewtonsoft.Json;usingSino.Intelligence.DataAccess.IServiceAccess.ILogs;usingSino.Intelligence.DataAccess.Models;usingSystem;usingSystem.Collections.Gen......
  • IIS上缺少 AspNetCoreModuleV2 如何解决
    实际上是少了装了.NetCoreSDK需要找到自己的程序使用的.NetCore对应版本进行下载https://dotnet.microsoft.com/en-us/download/dotnet/3.0只装Hosting就行了......
  • 容器服务 Kubernetes 版 ACK
    容器服务Kubernetes版(简称ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理;2021年成为国内唯一连续三年入选Gartner公共云容器报告的产品,2022年国内唯一进入Forrester领导者象限。其整合了阿里云虚拟化、存储、网络和安全能力,助力企业高效运行......