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

网站中的图片必须用 做吗软件开发模型不包括

网站中的图片必须用 做吗,软件开发模型不包括,怎样才能增加网站,网站一站 手机微信600 900背景 在很多时候#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.pierceye.com/news/262408/

相关文章:

  • 怎么查看网站空间是否到期如何用百度上传图片做网站外链
  • 可以做问卷挣钱的网站酒泉建设局网站
  • 阿里万网怎么做网站向百度提交网站
  • 杭州模板网站好网站漂浮广告怎么做
  • a站为什么不火了站群宝塔批量建站
  • 免费网站建设pptlinkcat wordpress
  • html5 网站大连在哪里哪个省
  • php个人网站源码国家企业信用信息公示系统官网山东
  • 丹东做网站哪家好事件营销的方法
  • wordpress建立网站wordpress 媒体文件夹
  • 响应式网站 框架天津市建设行业联合会网站
  • mc做图的网站深圳注册公司推荐
  • 广告公司怎么设置网站关键字网片的重量计算公式
  • 外贸网站都有哪些wordpress侧边栏选项卡
  • 北京网站建设 降龙网asp.net建网站
  • 中小网站建设新手自己做网站
  • 建网站手机如何建设网站并与数据库相连
  • 网站建设公司的客户个人网站做哪些内容
  • 外贸公司网站推广怎么让公司建设网站
  • 网站开发语长沙网站建设商城
  • 手机刷网站排名软件建设银行网站怎么登录密码忘了怎么办
  • 利用海康威视做直播网站鞍山网站建设找金航
  • 做网站大概花多少钱商圈云分销软件下载
  • 万户网站制作网站跳转怎么做
  • 网站开发全程设计做网站推广的公司发展前景
  • 电商设计网站培训建设网站域名
  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者
  • 网站备案 子域名云南商城网站建设
  • 上传到服务器的网站打开是空白网站报备流程