app版本控制的几种方式

2023-11-05

是否需要做版本控制?

  • 出入参保持不变,迭代对app无感知,不需要版本控制
  • 如果对比之前新增或者减少了参数,但是可以通过给默认值或者兼容零值的方式兼容老逻辑,不需要版本控制
  • 其他情况需要进行版本控制

版本控制的几个方案

灰度部署,通过nginx分发

需要服务器机器支持灰度部署,比如目前服务器有两套,一套做灰度一套新版本。在请求的时候带上app版本号,通过nginx控制分发到灰度还是新版本。

优点:可以通过监控灰度流量知道还有多少用户没有升级app,当灰度的流量降低到一定程度时可以将灰度机器也更新成新的代码。无论是前端还是后端都对代码迭代无感知。
缺点:需要硬件服务器的支持。版本迭代很快的时候不适用。

在url中使用版本编号,通过拦截器分发

比如login接口,1.0版本url可以设置为
https://xxx.xxx/lv1/login/xxx
2.0版本url设置为
https://xxx.xxx/lv2/login/xxx

在处理路由的时候分开处理。

在请求参数中使用版本号

在请求参数中新增版本号参数,比如携带在header或者请求参数中,服务端拿到版本号参数之后对版本进行判断,然后走不通的处理逻辑。比如:

if (version > "1.6.1") {
	//xxxxx
} else {
	//xxxxx
}

这个会导致代码很乱,各个版本的逻辑混杂。当更新频率很高的时候,代码中会出现很多地方进行版本判断,整体很杂乱。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

app版本控制的几种方式 的相关文章

  • 图片上传怎么搞?!阿里云OSS对象存储教你快速实现!

    一 需求背景 小白 辉哥 我想在项目中实现图片上传 不知道有没有好用的第三方文件上传技术呢 辉哥 那多了去了 阿里 腾讯 百度 七牛云等都有文件上传技术 你从中随便挑一个 辉哥这就给你安排 小白 阿里也有文件上传 要不辉哥就给我安排阿里的实
  • Spring Boot 读取配置文件的五种方式

    第一种 Value 方式读取 前提条件 在application properties 文件中 写入相关属性值 customer address USA 读取工具类源码 Component public class CustonerConf
  • Java面试整理(二)《JavaSE》

    JavaSE 说明 我会根据我自己的经验 给每个内容标注重要程度 共有三个等级 低 中 高 仅个人参考意见 JVM是什么 中 JVM是Java Virtual Machine的缩写 是用于运行Java字节码的虚拟机 JVM是运行在操作系统之
  • 30功能之Base64编码原理

    一 Base64的由来 目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一 在做支付系统时 系统之间的报文交互都需要使用Base64对明文进行转码 然后再进行签名或加密 之后再进行 或再次Base64 传输 那么 Bas
  • 2022接口自动化测试工具Postman 使用教程

    一 Postman接口测试概述 1 1 接口测试 接口是指对协定进行定义的引用类型 通俗讲是就是软件系统不同组成部分衔接的约定 接口测试是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点 测

随机推荐

  • react替换元素节点_一道 React 面试题:在浏览器、组件和元素中都渲染了些什么?...

    每日前端夜话 第403篇 正文共 1500 字 预计阅读时间 7 分钟 这道题的答案有点复杂 首先要搞清楚 element 和 component 是不是一回事 从技术上来说 ReactDOM 不会在 DOM 中渲染 React 组件或 R
  • qt程序在debug模式下正常release下崩溃

    报错为 0x00007FFBFA386DD3 Qt5Core dll 处 位于 MainWindow exe 中 引发的异常 0xC0000005 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突 原因为 在一个函数下定义有返
  • 安卓编译的时候依赖包解析不了,老是下载不下来。Faled to resolve: com.squareup.retrofit2:converter-gson:2.3.0

    安卓编译的时候依赖包解析不了 老是下载不下来 E ldeaProjectsNdrcApp app build gradle Error QpenFle ShowinProiectStructuredala Faled to resolve
  • 【已解决】华为P10禁止系统更新EMUI9

    EMUI9 0耗电快 发热 占用内存大 所以我还是回退8 0 但是总是提示更新 还偷偷用wifi下载3个多G的安装包 尽管已经禁止wifi下载安装了 忍无可忍只能用ADB禁止 系统更新 以下是大致流程 PC端手机助手官方降级到EMUI8 0
  • 读《洞穴奇案》——旧文人的愚民术

    忙了快一周多 一直没有抽出时间继续阅读本书 今天终于草草的阅读完了一章 这章讲的是法律与民意之间的关系 更深入地讲 法律是否真正的表达了民意 而再发问 这个民意到底指的是谁的意图 这种意图是发自内心的还是屁股决定脑袋 如果我们以最善意观点去
  • 中国蚁剑安装教程——antsword及webshell一句话木马

    中国蚁剑是一款开源的跨平台网站管理工具 它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员 任何人不得将其用于非法用途以及盈利等目的 否则后果自行承担 一 首先下载加载器 下方是通过镜像github的地址 但是我依旧不能连接
  • 【区块链学习】

    区块链学习一 区块链概念 区块链结构 共识机制 智能合约 区块链应用于加密货币 区块链应用于实际场景 如何用最简单的方式解读区块链 通俗解释 区块链概念 区块链是一种分布式数据库 由许多区块组成 每个区块包含了一些交易信息和引用前一个区块的
  • C语言算法--桶排序

    1 什么是桶排序法 什么是桶排序法 其实说白了就是把需要排列的元素分到不同的桶中 然后我们对这些桶里的元素进行排序的一种方式 然后我们在根据桶的顺序进行元素的合并 不过前提是要确定桶的数量以及大小 按照稍微正式的说法是 桶排序法是一种基于计
  • JAVA提高ZXING对图片中的二维码的识别率(第二弹)

    背景 继上一次使用做二维码识别 公司需要高识别率的二维码识别 但ZXING实在是太弱了 对于那种二维码占比很小 图片对比度不高的 识别率低的令人咋舌 后来引入了opencv 加上恶补了一些图像处理的基础知识 总算有一个能看的过去的识别率了
  • 生产级实践之集群搭建方案系列-Redis主从、哨兵与多主集群模式的安装配置

    1 目标 介绍Redis的主从部署 哨兵部署与多主集群部署模式 实现Redis主从与哨兵集群部署 以及多主集群模式的搭建配置 2 脉络 介绍Redis的所有部署模式 特点与使用场景 完成Redis主从与哨兵集群部署 完成Redis多主集群模
  • docker搭建私有git服务器

    20210506 引言 使用git的时候 网的问题总是特别慢 反正本来也就是自己的东西 索性直接搭建一个私有的git服务器 搭建起来还是比较方便的 直接用docker搭建就好了 步骤 1 拉取镜像 docker pull gogs gogs
  • python零基础之if语句(单分支if、双分支if .else、多分支if..elif..elif..else、if语句的嵌套)、运算符优先级、比较运算符、赋值运算符、逻辑运算符、随机数random

    注意 1 在程序开发过程中 通常在判断条件时 会需要同时判断多个条件 只有多个条件都满足时 才会执行后续的代码 此时就会用到逻辑运算符 与或非了 即 and or not 2 pass 占位符 例如 当if语句内容为空的时候 如果没有代码程
  • 关于到美国学习cs的亲身感受,希望对你们有所帮助

    1 能否向各位寄托天下的朋友们简单介绍一下你自己 比如你国内的学校 或者什么档次 哪年申请出国的 什么专业 硕士还是博士 在美国的学校 或者什么档次 以及留学经历 毕业时间 现在状态 学生 博后 工作 回国 总体经历 国内在上海一所211学
  • 论文阅读:Interventional Few-Shot Learning

    作者发现两个规律 1 每一个feature dimension都携带有一定量的semantic meaning 也就是说每个feature dimension代表了一定的信息量 2 大部分的预训练模型都是以分类为训练目标 这些分类器都可以看
  • c++.net 托管字符串 非托管指针 互相转换

    System String md5String md5String admin IntPtr sptr System Runtime InteropServices Marshal StringToHGlobalAnsi md5String
  • 14款国内外精品PPT模板网站对比介绍

    简介 在平日的学习和工作中 我们经常需要制作幻灯片 通过PPT模板和素材库可以帮助我们快速设计出符合心意的幻灯片 本文对14个国内外高质量PPT模板网站进行简单的对比分析 希望对您有所帮助 国内PPT模板网站 1 SlideLive 网站地
  • 宝塔面板+花生壳实现内网部署的项目能够被在外网被访问

    05 宝塔面板 花生壳实现内网部署的项目能够被在外网被访问 1 安装操作系统 linux 2 安装宝塔面板 3 安装花生壳 4 使用宝塔面板部署项目 1 安装操作系统 linux 购买云服务器 自己安装需要的操作系统 2 安装宝塔面板 yu
  • 结构体详细了解

    用已经有的数据类型 来组合成我们需要的 复杂的数据类型 结构体定义 结构体的引入是为了描述包含有不同类型数据组合而成的数据 单独定义变量也是可以的 但变量彼此之间没有形式上的关联 容易出错 不成整体 没有封装 结构体把多个数据项打成一个包
  • 第二十八讲:神州路由器地址转换的配置

    实验拓扑图如下所示 设置内网地址段为192 168 0 0 S0 1为外网出口 通过nat访问192 168 2 0网段 操作步骤 步骤1 连接网络拓扑结构图 步骤2 配置计算机的IP地址 子网掩码和网关 步骤3 设置Router B的接口
  • app版本控制的几种方式

    是否需要做版本控制 出入参保持不变 迭代对app无感知 不需要版本控制 如果对比之前新增或者减少了参数 但是可以通过给默认值或者兼容零值的方式兼容老逻辑 不需要版本控制 其他情况需要进行版本控制 版本控制的几个方案 灰度部署 通过nginx