竞价页面网站做优化,自己做的网站怎么上网,wordpress如何去除页眉部分,北京多语言网站建设背景系列目录#xff1a;【NET CORE微服务一条龙应用】开始篇与目录在分布式或者微服务系统里#xff0c;通过配置文件来管理配置内容#xff0c;是一件比较令人痛苦的事情#xff0c;再谨慎也有湿鞋的时候#xff0c;这就是在项目架构发展的过程中#xff0c;配置中心存… 背景系列目录【NET CORE微服务一条龙应用】开始篇与目录在分布式或者微服务系统里通过配置文件来管理配置内容是一件比较令人痛苦的事情再谨慎也有湿鞋的时候这就是在项目架构发展的过程中配置中心存在的意义。其实配置中心的组件已经有非常出名的案例比如携程的阿波罗配置中心https://github.com/ctripcorp/apollo为什么又造轮子因为不想发布项目的时候到处切管理平台。基本要求作为一个通用的配置组件需要支持如下功能1、客户端定时刷新获信最新配置信息并进行热更新2、配置有更新服务端主动推送重载或更新命令至客户端进行配置获取所以涉及相对应组件如下1、支持广播的消息通知组件目前使用redis(StackExchange.Redis)、Zookeeper(Rabbit.Zookeeper)实现客户端全局监听服务服务端可以推送不同组建不同的命令2、支持定时获取最新配置目前使用HostedService实现全局统一启动客户端实现全局启动接口接口使用Timer进行定时获取配置3、支持net core原生IConfiguration接口获取配置中心数据 服务端设计 管理服务端主要实现1、三表增删改查2、配置内容表每次新增或者修改当前配置信息版本号为所以配置最大版本号然后加一3、应用表列表增加主动通知功能配置查询服务端主要提供配置信息的查询接口1、接口入参如下2、查询逻辑 2.1 入参基本验证 2.2 AppId 密钥进行签名验证 2.3 请求配置环境定位 2.4 查询当前请求应用和共有配置应用 2.5 查询大于当前查询版本号的配置信息并返回配置中心客户端客户端主要实现原理和功能1、配置信息请求当前Http请求需根据配置信息组合请求url然后请求获取配置每次请求带上当前配置最大版本号(在以后请求时只获取有更新的配置2、配置信息本地存储容灾第一次获取成功后把配置信息进行版本文件存储以后的请求中当有配置更新时再进行文件存储。3、当配置请求失败时进行本地文件配置信息的还原应用。4、配置定时获取5、客户端接收更新或者重载命令6、原生IConfiguration配置查询支持部分功能介绍客户端参数原生IConfiguration配置查询查看AddJsonFile源码可以发现实现自定义配置源需要集成和实现ConfigurationProvider和IConfigurationSource两个方法代码如下当有配置更新时我们需要更新到ConfigurationProvider的Data中所以我们需要实现自定义接口IDataChangeListener的OnDataChange方法当客户端请求发现有配置更新时会调用接口的OnDataChange把最新的配置信息传递进来。启用原生IConfiguration方法如下定时配置获取常规做法是写一个hostedservice的方法然后写一个timer去定时获取由于其他的组件可能都需要有定时的情况我们统一处理了一下定时的任务每个组件实现IExecutionService接口然后组件会在启动的时候循环调用IExecutionService的StartAsync的方法组件包Bucket.Config.HostedService原理比较简单使用代码如下组件命令监听和上面原则一样也进行了统一的封装目前监听主要实现了redis和zookeeper下面举例redis组件监听需实现接口命令序列化实体在hostedservice启动时实现在接口IExtractCommand里会根据各个监听组件的ListenerName进行对应的调用使用方法如下所以对应组件实现的命令监听只要关心自身逻辑即可吗代码如下配置中心使用配置如下Appsettings.json相关配置信息转移至配置中心由于配置中心客户端实现了原生的IConfiguration所以appsetting的相关配置我们完全可以移至配置中心中由于appsetting使用的是json所以在配置中心服务端配置信息的Key需要转换举例在配置中心key如下BucketListener:Redis:ConnectionStringBucketListener:Redis:ListenerKey......数组使用如下DbConfig:0:NameDbConfig:0:DbTypeDbConfig:1:NameDbConfig:1:DbType总结个人写作水平有限涉及的东西也很多篇幅有限所以只做了大体介绍忘谅解本章涉及源码https://github.com/q315523275/FamilyBucket/tree/master/src/Config 客户端组件https://github.com/q315523275/FamilyBucket/tree/master/%E5%9F%BA%E7%A1%80%E6%9C%8D%E5%8A%A1%E9%A1%B9%E7%9B%AE/Pinzhi.ConfigServer 配置查询服务端https://github.com/q315523275/FamilyBucket/tree/master/%E5%9F%BA%E7%A1%80%E6%9C%8D%E5%8A%A1%E9%A1%B9%E7%9B%AE/Pinzhi.Platform 综合管理服务接口相关文章【NET CORE微服务一条龙应用】第一章 网关使用与配置原文地址https://www.cnblogs.com/tianxiangzhe/p/10342428.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com