当前位置: 首页 > news >正文

龙岩网站推广做微信推送网站

龙岩网站推广,做微信推送网站,谷歌搜索引擎入口google,网站建设机器人微服务确实是行业的一个趋势#xff0c;我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西#xff0c;有很多大牌的组件可以选#xff0c;比如spring-cloud-config#xff0c;apoll#xff0c;disconf等等。而我为什么还要造一个轮子呢我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西有很多大牌的组件可以选比如spring-cloud-configapolldisconf等等。而我为什么还要造一个轮子呢一来这些都不是.net实现的我就想试试用.net core实现一个而且他们也对.net不太友好也只有apoll提供了官方的.net客户端。二来这些组件都太重量级了比如apoll光跑起来就要部署多个节点admin,portal,meta sevice还要依赖eureka。很多旧的项目往微服务迁移的时候并不是一下次全部调整完成的可能是一步步来的比如先把所有的服务都容器化并没有使用微服务全家桶。而且有的项目也不需要微服务全家桶毕竟微服务不是银弹很多项目单体结构就足够了有些项目传统的SOA架构也可以了。唠叨一句那种毫无流量毫无并发的项目几人几天就搞完的强上微服务真的好吗但是这些项目也可能是分布式的容器化部署的那么这些项目我觉得也是需要配置中心的因为在分布式、容器化环境下更改配置实在是太麻烦了。可以说配置中心并不是微服务独有的。基于以上原因我提炼了一些配置中心必备的功能做的尽量简单陋开发了AgileConfig为.net core的生态尽一份绵薄之力。 Github求starhttps://github.com/kklldog/AgileConfigAgileConfig这是一个基于.net core开发的轻量级配置中心。部署简单最少只需要一个数据节点支持docker部署支持多节点分布式部署来保证高可用配置支持按应用隔离应用内配置支持分组隔离使用长连接技术配置信息实时推送至客户端支持IConfigurationIOptions模式读取配置原程序几乎可以不用改造配置修改支持版本记录随时回滚配置如果所有节点都故障客户端支持从本地缓存读取配置架构AgileConfig的架构比较简单主要是分3块客户端客户端程序是使用netstandard2.0开发的一个类库方便.net core程序接入nuget搜agileconfig.client就可以安装。可以在启动客户端的时候配置多个节点的地址客户端会随机挑选一个进行连接连接成功后会维持一个websocket长连接。如果连接的节点发生故障导致连接中断客户端会继续随机一个节点进行连接直到连接成功。节点、管理程序节点是使用asp.net core开发的一个服务。为了部署简单直接把管理程序跟节点服务合二为一了。任何一个节点都可以在启动的时候配置环境变量开启管理程序功能。数据库使用数据库来存储数据目前支持Sqlserver, Mysql, Sqlite 三种数据库。因为服务端使用EF Core框架访问数据原则上只要EF Core支持的数据库节点就可以很方便的支持它。部署服务端初始化数据库用户只需要手工建一个空库所有的表在第一次启动的时候都会自动生成。目前支持sqlservermysqlsqlite三种数据库。使用服务端运行服务端sudo docker run --name agile_config -e adminConsoletrue -e db:providersqlite -e db:connData Sourceagile_config.db -p 5000:5000 kklldog/agile_config:latest 通过docker建立一个agile_config实例其中有3个环境变量需要配置:adminConsole 配置程序是否为管理控制台。如果为true则启用控制台功能访问该实例会出现管理界面。db:provider 配置程序的数据库类型。目前程序支持sqlitemysqlsqlserver 三种数据库。db:conn 配置数据库连接串    初始化管理员密码第一次运行程序需要初始化管理员密码    节点AgileConfig支持多节点部署所有的节点都是平行的。为了简化部署AgileConfig并没有单独的控制台程序请直接使用任意一个节点作为控制台。当环境变量adminConsoletrue时该节点同时兼备数据节点跟控制台功能。为了控制台能够管理节点所以需要在控制台配置节点的信息。注意即使是作为控制台的数据节点同样需要添加到管理程序以便管理它。应用AgileConfig支持多应用程序接入。需要为每个应用程序配置名称、ID、秘钥等信息。配置项配置完应用信息后可以为每个应用配置配置项。配置项支持分组。新添加的配置并不会被客户端感知到需要手工点击“上线”才会推送给客户端。已上线的配置如果发生修改、删除、回滚操作会实时推送给客户端。版本历史记录了配置的历史信息可以回滚至任意版本。客户端控制台可以查看已连接的客户端。系统日志系统日志记录了AgileConfig生产中的一些关键信息。使用客户端安装客户端Install-Package AgileConfig.Client 初始化客户端以asp.net core mvc项目为例{Logging: {LogLevel: {Default: Information,Microsoft: Warning,Microsoft.Hosting.Lifetime: Information}},AllowedHosts: *,//agile_configAgileConfig: {appId: app,secret: xxx,nodes: http://localhost:5000,http://localhost:5001//多个节点使用逗号分隔} }public static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).ConfigureAppConfiguration((context, config) {//读取本地配置var localconfig  new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(appsettings.json).Build();//从本地配置里读取AgileConfig的相关信息var appId  localconfig[AgileConfig:appId];var secret  localconfig[AgileConfig:secret];var nodes  localconfig[AgileConfig:nodes];//new一个client实例var configClient  new ConfigClient(appId, secret, nodes);//使用AddAgileConfig配置一个新的IConfigurationSourceconfig.AddAgileConfig(configClient);//找一个变量挂载client实例以便其他地方可以直接使用实例访问配置ConfigClient  configClient;//注册配置项修改事件configClient.ConfigChanged  ConfigClient_ConfigChanged;}).ConfigureWebHostDefaults(webBuilder {webBuilder.UseStartupStartup();}); 读取配置AgileConfig支持asp.net core 标准的IConfiguration跟IOptions模式读取配置。还支持直接通过AgileConfigClient实例直接读取public class HomeController : Controller{private readonly ILoggerHomeController _logger;private readonly IConfiguration _IConfiguration;private readonly IOptionsDbConfigOptions _dbOptions;public HomeController(ILoggerHomeController logger, IConfiguration configuration, IOptionsDbConfigOptions dbOptions){_logger  logger;_IConfiguration  configuration;_dbOptions  dbOptions;}public IActionResult Index(){return View();}/// summary/// 使用IConfiguration读取配置/// /summary/// returns/returnspublic IActionResult ByIConfiguration(){var userId  _IConfiguration[userId];var dbConn  _IConfiguration[db:connection];ViewBag.userId  userId;ViewBag.dbConn  dbConn;return View();}/// summary/// 直接使用ConfigClient的实例读取配置/// /summary/// returns/returnspublic IActionResult ByInstance(){var userId  Program.ConfigClient[userId];var dbConn  Program.ConfigClient[db:connection];ViewBag.userId  userId;ViewBag.dbConn  dbConn;return View(ByIConfiguration);}/// summary/// 使用Options模式读取配置/// /summary/// returns/returnspublic IActionResult ByOptions(){var dbConn  _dbOptions.Value.connection;ViewBag.dbConn  dbConn;return View(ByIConfiguration);}} 关注我的公众号一起玩转技术
http://www.zqtcl.cn/news/92394/

相关文章:

  • opencart做外贸网站怎样丽水市城乡建设局网站
  • 黑色网站配色typora wordpress
  • 哪个网站做的系统好用吗开一家网站建设公司好
  • 高仿服装网站建设高端网站建设服务
  • 网站怎么做前后台存取旅游网站建设的目的与意义是什么意思
  • 网站一年了百度不收录自己做的网站怎么植入erp
  • 怎样做能让招聘网站记住密码广州建设营销型网站
  • wordpress 小说多站5个月的新站网站被k了会怎么样
  • 工具类网站怎么优化seowordpress主题上传图片教程
  • 公司网站打不开是什么原因服装建设网站的原因
  • 江阴营销网站建设用织梦做网站有后台吗
  • 网站开发列表wordpress tag文件
  • 网站集约化建设的总体情况e龙岩官网12345
  • 个人网站需要多大空间广告营销策划书
  • 2023网站seo智通人才招聘网最新招聘
  • 徐州免费网站建站模板钉钉爱客crm
  • 中信建设有限责任公司内部网站网站建设小企业案例
  • 做网站需要多少职务阿克苏交通建设局网站
  • 柳市建设网站python 网站开发 环境
  • 重庆建设网站的公司网站建设公司国内技术最强
  • 建设一个网站花多少钱江苏省水利工程建设局网站
  • 美橙建站之星怎么样嘉兴网站系统总部
  • 织梦企业门户网站网站只收录无权重
  • 枣庄市 网站建设南宁制作网站
  • 动漫网站建设的目的it外包公司怎么找
  • 怎样打开网站制作千图app的优势
  • 网站建设销售经理职责大桥石化集团网站谁做的
  • 黄金网站软件免费靖江seo快速排名
  • 网站建设经验做法和取得的成效wordpress 浏览器兼容
  • 代理记账注册公司图片商丘网站seo