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

安徽省广州网站优化哪里有

安徽省,广州网站优化哪里有,wordpress 门户网站,男的女的做那个的视频网站写在前面Web服务开发过程中我们经常有这样的需求#xff1a;某些功能我必须我修改了配置才启用#xff0c;比如新用户注册送券等#xff1b;某个功能需到特定的时间才启用#xff0c;过后就失效#xff0c;比如春节活动等#xff1b;某些功能#xff0c;我想先对10%的用… 写在前面Web服务开发过程中我们经常有这样的需求某些功能我必须我修改了配置才启用比如新用户注册送券等某个功能需到特定的时间才启用过后就失效比如春节活动等某些功能我想先对10%的用户开放验证没问题后再逐步全量开放等这就是功能开关。日常开发中功能开关我们一般是写到配置文件里的根据不同的配置做不同的逻辑但其实.net core是对功能开关有官方支持的但因为跟Azure集成比较好所以文档不在.net core的文档里面而是在Azure的文档这边https://docs.microsoft.com/en-us/azure/azure-app-configuration/Asp.net Core中集成Asp.net Core的功能开关(Feature Flag)是直接仅根据配置文件方式使用和集成Azure配置中心使用的我们来看看区别本地配置文件方式1、先安装包install-package Microsoft.FeatureManagement.AspNetCore2、注入服务net6builder.Services.AddFeatureManagement();3、配置文件写几个配置appsettings.jsonFeatureManagement: { //简单功能开关Beta: true,v1: true,v2: true,}以上配置对应以下的枚举public enum MyFeatureFlags{Beta,V1,V2,PercentageFlag,TimeWindowFlag,CustomFeatureFlag}其实不用枚举直接用字符串也是可以的4、使用功能开关1、创建一个FeatureFlagController注入服务private readonly IFeatureManager _featureManager;public FeatureFlagController(IFeatureManager featureManager) {_featureManager  featureManager; }简单功能开关/// summary /// 当启用beta版本的时候接口有效 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.Beta)] [HttpGet] public async TaskIActionResult Beta() {var beta  await _featureManager.IsEnabledAsync(nameof(MyFeatureFlags.Beta));if (beta){//beta版本特有逻辑}return Success(Beta, beta); //这里Success是封装的大家可以改成返回Ok() }/// summary /// 当启用v1版本的时候接口有效 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.V1)] [HttpGet] public async TaskIActionResult V1() {return Success(V1); }/// summary /// 当启用v2版本的时候接口有效 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.V2)] [HttpGet] public async TaskIActionResult V2() {return Success(V2); }由于我们上面的配置都是开启的... //简单功能开关 Beta: true, v1: true, v2: true,可以看到image-20220804104253051接口都可以访问我们把v1改成false试试image-20220804104401620马上404了这里清晰的看到功能开关在多版本Api上线下某个版本时候确实方便基于过滤器的功能开关基于过滤器的功能开关是有一定逻辑的功能开关a、百分率功能开关/// summary /// 启用百分率的功能开关 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.PercentageFlag)] [HttpGet] public async TaskIActionResult PercentageFlag() {return Success(PercentageFlag); }builder.Services.AddFeatureManagement().AddFeatureFilterPercentageFilter();添加配置FeatureManagement节点下//百分率功能开关 PercentageFlag: {EnabledFor: [{Name: Percentage,Parameters: {Value: 30}}] },这里的配置参数值代表30%的概率启用次功能我们试试image-20220804105858780分别是不启用和启用状态b、时间窗口功能开关/// summary /// 启用时间窗口的功能开关 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.TimeWindowFlag)] [HttpGet] public async TaskIActionResult TimeWindowFlag() {return Success(TimeWindowFlag); }builder.Services.AddFeatureManagement().AddFeatureFilterTimeWindowFilter();添加配置//时间窗口功能开关 TimeWindowFlag: {EnabledFor: [{Name: TimeWindow,Parameters: {Start: 2022/08/03 08:00:00 00:00, //这里是UTC时间End: 2022/08/03 09:00:00 00:00}}] },这个开关在2022年8月3日 下午16时(北京时间)和17时这个世界窗口内才启用对应的Start就是生效时刻End失效时刻c、自定义功能开关ok以上都是系统内置的功能开关我们来根据自己需求创建一个自定义的需求某个功能只有在客户端是手机或者平板的情况下启用pc端不启用创建一个自定义功能开关过滤器类CustomFeatureFilter[FilterAlias(CustomFeature)] public class CustomFeatureFilter : IFeatureFilter {private readonly IHttpContextAccessor _httpContextAccessor;public CustomFeatureFilter(IHttpContextAccessor httpContextAccessor){_httpContextAccessor  httpContextAccessor;}public Taskbool EvaluateAsync(FeatureFilterEvaluationContext context){//这里参数模拟平台实际业务会有实际业务的逻辑var platform  _httpContextAccessor.HttpContext.Request.Query[platform].ToString();var allowPlatform  context.Parameters.GetCustomFeatureFilterSettings();return Task.FromResult(allowPlatform.AllowedPlatforms.Any(c  c  platform));} }public class CustomFeatureFilterSettings {public string[] AllowedPlatforms { get; set; } }/// summary /// 自定义功能开关 /// /summary /// returns/returns [FeatureGate(MyFeatureFlags.CustomFeatureFlag)] [HttpGet] public async TaskIActionResult CustomFeatureFlag(string platform) {return Success(CustomFeatureFlag); }builder.Services.AddFeatureManagement().AddFeatureFilterCustomFeatureFilter();添加配置//自定义功能开关 CustomFeatureFlag: {EnabledFor: [{Name: CustomFeature,Parameters: {AllowedPlatforms: [ //这里配置运行启用功能的平台phone,pad//pc]}}] }我们来测测image-20220804111012239可以看到仅在设置运行的平台下启用验证ok集成Azure配置中心App Configuration方式1、添加配置ConnectionStrings: {AppConfig: your app connection string},具体可参考我之前的文章《微软Azure配置中心 App Configuration (一)轻松集成到Asp.Net Core》2、启用Azure功能开关var connectionString  builder.Configuration.GetConnectionString(AppConfig);builder.Host.ConfigureAppConfiguration((hostingContext, config)  {//配置不同功能config.AddAzureAppConfiguration(options {启用功能开关特性options.Connect(connectionString)//启用功能开关特性.UseFeatureFlags(options {options.CacheExpirationInterval  TimeSpan.FromSeconds(30); //配置FeatureFlag缓存本地时间默认就是30});}); });UseFeatureFlags启用后本地配置文件的方式失效builder.Services.AddAzureAppConfiguration(); //注入服务3、在Azure 配置中心后台配置好功能开关(代替本地配置文件)基本功能开关配置创建配置image-20220804115402160填写配置信息image-20220804122451808OK以上是基本的配置配置好后可以直接在列表页面勾选启用配置与否image-20220804123400869基于过滤器的开关配置百分率功能开关image-20220804123721457时间窗口功能开关image-20220804123801220这里的Start date,和Expiry date就对应前面配置文件的Start,End;自定义功能开关image-20220804123835703这里的过滤器的**Name:**CustomFeature ,要跟代码标签 [FilterAlias(CustomFeature)]一致AllowedPlatforms也要跟代码里面的配置一致[phone,pad]这个是数组的写法总结1、启用集成到Azure的UseFeatureFlags后本地配置文件的方式失效2、Azure这套功能开关还是有可选之处的我尤其喜欢其接口标签[FeatureGate]另外定义了的标准配置项与Azure配置中心无缝集成香。源码https://github.com/gebiWangshushu/Hei.Azure.Test[参考]https://docs.microsoft.com/en-us/azure/azure-app-configuration/overview
http://www.pierceye.com/news/417892/

相关文章:

  • 做网站交互demo工具服务器中安装wordpress
  • 2017年网站建设市场分析2345浏览器官网网址
  • 超大型网站建设怎么打广告吸引客户
  • 阳泉 网站建设合作国际网站设计
  • 东莞网站优化快速排名wordpress自适应设置宽度
  • wordpress的站点地址怎么设置青岛seo网站建设
  • wordpress 获取文章标签泰安企业网站seo
  • 网站可分为哪两种类型jsp网站建设项目实战 pdf
  • 科技类网站简介怎么做网站建设公司的工资
  • 东莞网站推广怎么做网站备案和备案的区别
  • 免费的舆情网站app开放平台设计方案
  • 昆明驿站网站建设程序做网站好还是app好
  • 提供网站推广公司电话室内设计好不好学
  • 小型网站网站建设需要做网页的素材网站
  • 圣诞节网站模板大兴企业官网网站建设
  • 法国化妆品进口报关做网站贵州两学一做网站
  • 青海环保网站建设公司wordpress版权怎
  • 砀山网站建设大凤号 网站建设
  • 汕头站什么是网站优化主要包括那几个
  • 买了一个域名如何做网站做歌手的网站
  • 制作精美网站建设服务周到外贸没有公司 如何做企业网站
  • jsp手机销售网站的建设做网站的收钱不管了
  • 购物分享网站流量排名帮忙做ppt的网站
  • 网站建设分几步易语言 wordpress
  • 网站备案申请模板网页制作软件手机版
  • 深圳网站开发企业建一个网站怎么赚钱吗
  • 购物网站开发小结自己搭建局域网云桌面终端
  • 做ssp用什么建网站vps搭建asp网站
  • 顺义网站建设网站认证值不值得做
  • 怎么做网站用dreamwer环球影城排队太热了