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

提供零基础网站建设教学培训湖北省住房城乡建设厅网站

提供零基础网站建设教学培训,湖北省住房城乡建设厅网站,个人域名怎么备案,怎么选择郑州网站建设背景 在很多时候#xff0c;产品同学或其他 boss 会有一些想法#xff0c;或好或坏#xff0c;都会想放到线上环境去验证#xff0c;看看能不能带来更好的效果。这其实就是一个提出假设和验证假设的过程#xff0c;而 AB 测试#xff0c;是验证假设的好方法。对于服务之间… 背景 在很多时候产品同学或其他 boss 会有一些想法或好或坏都会想放到线上环境去验证看看能不能带来更好的效果。这其实就是一个提出假设和验证假设的过程而 AB 测试是验证假设的好方法。对于服务之间的调用这一块其实也是相当符合的。举几个例子吧A - BB 进行了重构A - BB 进行了算法模型的调整A - BB 加入了新特性...对于这几个例子正常的逻辑都是会让小部分用户或流量流进新的 B观察一段时间的数据是否达到预期再决策 B 是否真的可以上线。在引入注册中心 Nacos 之后我们对服务之间调用这一块可以怎么做到呢答案就是 metadata元数据每个应用的实例基本信息比较少但是 metadata 是可以很丰富的。我们在向 Nacos Server 进行服务注册的时候往往会附加一些 metadata 可以参考官方文档中 Dubbo 融合 Nacos 成为注册中心 章节。对于上述的被调用方新版 B 而已完全可以把相关内容放进 metadata 中好比说版本号特性名等等。调用方 A 就可以根据当前的用户来判断是否要走那个版本的被调用方 B。当然这一步很多公司都会有相应的系统去管理好比体验用户。也可以看看下面这个流程图基本涉及到了。接下来就根据上面的这个做一个简单的例子。示例 首先是准备两个被调用方 B。带特性的var builder  WebApplication.CreateBuilder(args);builder.Services.AddNacosAspNet(builder.Configuration);var app  builder.Build();app.MapGet(/, ()  {return Results.Ok(OK - feature); });app.Run(http://*:9885);{nacos: {ServerAddresses: [ http://localhost:8848 ],DefaultTimeOut: 15000,Namespace: cs,ListenInterval: 1000,ServiceName: providerb,PreferredNetworks: 192.168,GroupName: DEFAULT_GROUP,ClusterName: DEFAULT,Weight: 100,Metadata: {version: 1.0,feature: true}} }正常的var builder  WebApplication.CreateBuilder(args);// Add services to the container. builder.Services.AddNacosAspNet(builder.Configuration);var app  builder.Build();app.MapGet(/, ()  {return Results.Ok(OK - normal); });app.Run(http://*:9886);{nacos: {ServerAddresses: [ http://localhost:8848 ],DefaultTimeOut: 15000,Namespace: cs,ListenInterval: 1000,ServiceName: providerb,PreferredNetworks: 192.168,GroupName: DEFAULT_GROUP,ClusterName: DEFAULT,Weight: 100,Metadata: {version: 1.0,feature: false}} }启动这两个被调用方然后可以看到 Nacos 的服务详情页大致如下后面就是比较关键的调用方了。var builder  WebApplication.CreateBuilder(args);// Add services to the container. builder.Services.AddNacosV2Naming(x  {x.ServerAddresses  new Liststring { http://localhost:8848/ };x.Namespace  cs; });var app  builder.Build();app.MapGet(/req/{id}, Call);app.Run(http://*:9884);async TaskIResult Call(ILoggerFactory loggerFactory, INacosNamingService svc, IHttpClientFactory factory, int id) {var logger  loggerFactory.CreateLogger(nameof(Call));var allIns  await svc.GetAllInstances(providerb, DEFAULT_GROUP, new Liststring { DEFAULT });// 按照对应的逻辑做对应的地址获取方式// 这里是id 小于 100 的走新特性string address  GetAddress(allIns, id  100);var client  factory.CreateClient();var res  await client.GetStringAsync(address);logger.LogInformation(user{id},url{url},result{res}, id, address, res);return Results.Ok($caller ------ {res}); }string GetAddress(ListInstance instances, bool isFeature) {var str  isFeature ? true : false;var ins  instances.Where(x  x.Healthy  x.Enabled  x.Metadata.TryGetValue(feature, out var feature)  feature.Equals(str)).OrderBy(xGuid.NewGuid()).FirstOrDefault();return ins ! null ? $http://{ins.Ip}:{ins.Port} : throw new Exception(Can not find out ins); }启动调用方程序访问并指定小于100和大于100的两个用户可以看到调用的虽然是同一个服务但是一个是访问的 feature另一个访问的是  normal。到这里我们已经可以做到根据不同的逻辑将用户导向到相同服务的不同版本上面了。写在最后 充分利用好服务实例的 metadata 可以衍生出许多有意思的实践。另外《Nacos 架构与原理》 的电子书过段时间会放出大家感兴趣的可以关注一下。nacos-sdk-csharp 的地址 https://github.com/nacos-group/nacos-sdk-csharp本文示例代码的地址 https://github.com/catcherwong-archive/2021/tree/main/ABTestWithNacos
http://www.zqtcl.cn/news/805859/

相关文章:

  • nas 做网站wordpress音乐门户主题
  • 企业邮箱163登录入口seo建站需求
  • 外贸企业网站源码下载域名和服务器多少钱
  • 镇江专业建网站建设外汇网站
  • 网站关键词优化软件效果wordpress如何网站顶部右侧广告
  • seo整站优化报价wordpress网站资源
  • 假冒彩票网站开发仿小刀娱乐wordpress主题
  • 东光做淘宝网站古色古香的网站模板
  • 创建网站得花多少钱福州最好的网站建设
  • mysql asp网站开发企业失信被执行人查询
  • 网站制作完工验收单软件开发模型有哪几种
  • saas建站平台源码wordpress 安装主题 无法创建目录
  • 兰州做高端网站做网站学什么专业
  • dedecms 图片网站模板wordpress省市联动
  • pw域名网站杭州建站官网建设
  • 河北省建设厅网站官网网站js时间代码
  • 网站开发实现编码深圳做网站专业
  • 网站建设电子合同h5网站开发多少钱
  • 邓州做网站投票网站做seo如何
  • 环保网站建设项目备案系统免费虚拟主机空间
  • 网站实现语言转换技术上该怎么做免费下载网页模板
  • 云南网站建设专业品牌网站建设电子商务
  • 保健食品东莞网站建设莱芜金点子信息港交友
  • 小程序视频网站开发网站开发项目预算表
  • 邢台手机网站建设价格iis 手机网站
  • 网站开发流程三大部分微信学校网站模板
  • 网站推荐正能量专业做网站多少钱
  • 网站界面设计总结淘客手机端网站建设
  • 天津网站建设zhy88宁波企业黄页公司黄页
  • 个人网站课程设计报告app免费制作软件中文版