美文网首页
10000台集群,发布服务时怎么确保所有用户访问新功能?

10000台集群,发布服务时怎么确保所有用户访问新功能?

作者: Depro | 来源:发表于2020-01-09 09:16 被阅读0次

思考:

一个java-web服务,如果集群部署1万台,发布一个新的充值优惠功能,机器一台一台的发布新功能,这样就很大概率有访问发布了新代码的用户使用新逻辑,另外一部分访问久逻辑。甚至同一个用户,第一次充值走新逻辑,第二次充值就访问到老逻辑了。怎么解决呢?

思路:

第一种:在低峰的时候,负载策略,用户访问全部到指定范围的50%的机器A,然后在另外一半的机器B上批量发布新功能,全部发布成功后,让用户的访问全部到新功能上的一半机器B上,然后在A上发布新功能,最后用户访问全部的A+B

第二种:像有些网站的提示一样,在某个时间段,系统升级,不能访问,然后在这暂停服务时间去发布。这个在互联网的应用,几乎是不太可能的。

第三种:在实际的发布集群中,使用的比较多的是做个新老版本的标识。新逻辑上线的时候,在配置中心或者配置文件中加个flag=true,表示新的代码,然后代码中判断这个如果为空或者false,就走老逻辑;如果是true,就走新逻辑。等这一次上线完成后,所有的机器上都上了配置flag=true,也就都走新逻辑了。下次把这个flag去掉就可以了。这个虽然不能完全杜绝在发布期间,一个用户在多次访问同一套逻辑返回2个不同的结果,这也是能接受的,毕竟发布都是选择在低峰期间,访问人数少。要不就是设置一个动态配置switch开关,正常上线,switch=false,都走老逻辑,等活动开始了,把switch=true,就全走新逻辑了。这个比较好。这个需要公司有支持动态配置的配置中心或者手动去改线上服务器配置的权限,不过现在开源配置中心多,没啥问题

相关文章

  • 10000台集群,发布服务时怎么确保所有用户访问新功能?

    思考: 一个java-web服务,如果集群部署1万台,发布一个新的充值优惠功能,机器一台一台的发布新功能,这样就很...

  • spring boot实战之共享session

    在工作中会遇到以下几个场景: 发布新功能或修复bug,服务重启,用户需要重新登录 当集群内某个节点失效时,用户明明...

  • 2019-07-07

    #运维工程师的职责 1.确保网站服务器的数据不能丢失 2.确保网站服务器7*24小时运行 3.确保用户访问网站的体...

  • 从 session 到 token

    2018.04.18 服务器存储 session 的缺点:所有集群实例都存储所有用户的 session,集群实例数...

  • HDP集群mysql迁移方案

    前置条件: 1.新的mysql已经部署好并启动,集群主机可以正常访问该服务。2.给集群提供访问mysql的用户及权...

  • 异构数据导入腾讯云Elasticsearch集群实践

    腾讯云Elasticsearch服务提供在用户VPC内通过私有网vip访问集群的方式,用户可以通过Elastics...

  • 7月5日 操作系统管理命令

    运维工程师的职责 1.确保网站信息不会丢失2.网站服务器24小时*7天运行3.确保用户访问网站体验 系统操作预备知...

  • 苹果App Store开通预订购服务

    近期苹果发布新功能,用户可以在App Store中找到尚未上架的应用进行预购。 一、新功能概述: 所有苹果平台上的...

  • httpd-2.4 - 基于用户的访问控制(AuthType B

    部署httpd服务时,有些路径下的内容不希望所有用户都能访问,只有提供用户名和密码才能正常访问,此时就会用到基于用...

  • 可用性指南5:首页

    5.1 启用首页访问权限 确保用户能够从网站的任何其他页面访问首页。 5.2 在首页显示所有主要选项 用户不应该需...

网友评论

      本文标题:10000台集群,发布服务时怎么确保所有用户访问新功能?

      本文链接:https://www.haomeiwen.com/subject/daoeactx.html