兼容发布&小流量概述
背景
re消息limit上线之前有这样的问题:
1.存量用户,会感知到新功能;
2.后端、前端上线间隔期间,如果没做兼容,涉及到接口数据格式变更,会导致C端拉取数据报错;
3.改模板配置,会导致老信息的格式显示异常;需要代码兼容或者忍受异常的显示。
反思
如果是C端发布,需要考虑兼容性问题。按以下步骤
1.初步确定上线顺序;
2.按维度排查兼容问题,维度包括
- 前后端延时上线
- 存量数据(流程相关、存储相关)
- 增量数据
- 接口变更等
3.兼容处理:功能开关、代码兼容、冗余老接口。
4.check兼容问题,重新评估兼容问题。
延伸
以上内容,是细节的兼容处理;还可以通过切流量的方式,整体保证兼容性。
比如4台前端、4台后端。分成两组,A组2前端2后端,B组2前端2后端。
- 公网流量打到A组,A组前端流量打到A组后端,此时A组都是老版本;
- B组前后端发布新版本;
- 整体切流量,从A到B;
- 发布B组,切到全流量
避免新版本全网裸奔,可以再细分成多组机器。
小流量 公网ip以1结尾的用户,切到新版本服务;
看具体效果,然后再整体切流量。
兼容发布&小流量概述的更多相关文章
- 基于uniapp自定义Navbar+Tabbar组件「兼容H5+小程序+App端Nvue」
uni-app跨端自定义navbar+tabbar组件|沉浸式导航条|仿咸鱼凸起标签栏 在跨端项目开发中,uniapp是个不错的框架.采用vue.js和小程序语法结构,使得入门开发更容易.拥有非常丰富 ...
- web小流量实验方案
近期在思考怎么做小流量,在网上搜了一下,总结例如以下: 1.前提,站点pv已经达到了一定的规模,比方上百万pv,不做小流量冒然更新功能,可能会带来大面积流量损失.在这样的前提下须要做小流量实验 2.什 ...
- 微信小程序框架 同时兼容QQ小程序
最近一直在开发微信小程序,经过几个版本的迭代开发,代码终于能够达到框架级别,动态配置.除了界面有些寒酸以外,功能上还是挺完备的. 主要有以下特点 1.整个程序所需url地址均在api.js中定义,环境 ...
- 流量染色与gRPC服务托管 微服务协作开发、灰度发布之流量染色 灰度发布与流量染色
大规模微服务场景下灰度发布与流量染色实践 https://mp.weixin.qq.com/s/UBoRKt3l91ffPagtjExmYw [go-micro]微服务协作开发.灰度发布之流量染色 - ...
- uniapp自定义顶部搜索框兼容微信小程序
zhuanzai: uniapp自定义顶部搜索框兼容微信小程序 自定义组件 navbarvue (胶囊底部高度 - 状态栏的高度) + (胶囊顶部高度 - 状态栏内的高度) = 导航栏的高度 < ...
- QQ小程序开发与发布小教程
QQ小程序QQApp,和微信小程序类似,可以直接在手机QQ中直接打开,应用内应用,省去了安装手机APP,非常方便.官方的介绍:QQ小程序为QQ体系下的应用开放平台,可为不同类型的产品提供框架,并在QQ ...
- 开源电影项目源码案例重磅分析,一套代码发布小程序、APP平台多个平台
uni-app-Video GitHub地址:https://github.com/Tzlibai/uni-app-video 一个优秀的uni-app案例,旨在帮助大家更快的上手uni-app,共同 ...
- Weblogic发布小问题——weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
前几天发布应用时出现了如下所示的一段错误提示信息: weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND pr ...
- Weblogic发布小问题——The root element weblogic-web-app is missing in the descriptor file
前几天发布项目遇到这样一个小错误,在此记录一下,以便加深一点印象,下次好解决类似的问题! (对应的应用服务器是WebLogic Server 版本: 10.3.6.0,应用是以文件夹的形式发在服务器的 ...
随机推荐
- 剑指offer面试题26:复杂链表的复制
题目:请实现一个函数,复制一个复杂链表. 在复杂链表中,每个结点除了有一个next指针指向下一个结点外,还有一个sibling指针指向链表中的任意结点或者nulL 直观解法: 1.遍历链表,复制链表节 ...
- <mvc:annotation-driven> 中的HttpMessageConverters 的理解
用烂的图 配置一个或多个HttpMessageConverter类型以用于转换@RequestBody方法 参数和@ResponseBody方法返回值. 使用此配置元素是可选的. 此处提供的Http ...
- 了解iOS消息推送一文就够:史上最全iOS Push技术详解
本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表. 1.引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ.微信等IM界面处于前台时,聊天消息和指 ...
- Android JNI 学习(十):String Operations Api & Other Apis
一.String Operations(字符串操作) 1. NewString jstring NewString(JNIEnv *env, const jchar *unicodeChars, js ...
- Android UID 机制
UID一般理解为User Identifier,在linux中就是用户的ID,表明是哪个用户运行了这个程序.它们主要用于权限的管理. 而在Android 中又有所不同,因为Android为单用户系统, ...
- 110道python面试笔试题汇总,你能答对几道?
数据分析系列教程插播一篇面试题教程,最近公众号新来了不少朋友,这几天不少粉丝留言说问我有没有python面试题,其实之前分享过一些面试题,今天统一再给大家分享一遍,也希望能帮助此时仍在找工作的同学,尽 ...
- mongoose的save无效的问题
概述 今天朋友遇到了使用mongoose中的save无效的问题,我通过查找资料帮他解决了,把心得记录下来,供以后开发时参考,相信对其他人也有用. 参考资料: Mongoose学习参考文档--基础篇 M ...
- 编码之痛:操作系统迁移后redis缓存无法命中
前几天一台内网服务器从ubuntu迁移到了centos,检查一切正常后就没有太在意. 今天有同事反馈迁移后的机器上的服务一个缓存总是无法获取,对比了下环境.JVM参数,尝试了war包替换等方式照样复现 ...
- 解决android sdk 运行出现 could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:的问题
ionic3项目,在添加android平台后,cordova run android 出现 以下问题: error: could not install *smartsocket* listener: ...
- foreach加循环体与不加循环体的区别
案例A(不加{}): <?php function genTree5($items) { foreach ($items as $item) echo $item['id'];die; $ite ...