APP 多版本发布之dubbox服务端配置

简介:

场景:近期小L发布app的时候遇到个头疼的事情,由于苹果app store需要审核原因,项目需要部署最新版本,但又不能影响来版本的正常使用;

    分析问题:如果是app业务相关的程序bug、或者是预发布版本

    解决方案:配置dubbo多版本

1
2
3
4
5
6
7
8
9
10
<dubbo:protocol id= "customerRest"  name= "rest"  port= "xxxxx"  />
<!-- ref:要注入的Service实现 -->
<dubbo:service  interface = "com.jlj.erp.app.dubbo.service.customer.CustomerApi" 
                 ref= "customerApi"  version= "1.0"  group= "group-customer"
                 protocol= "customerRest"   timeout= "60000"  />
<!-- ref:要注入的Service实现 -->
<dubbo:service  interface = "com.jlj.erp.app.dubbo.service.customer.CustomerApi" 
                 ref= "customerVApi"  version= "1.1"  group= "group-customer"
                 protocol= "customerRest"  timeout= "60000"  />    

实现相同的接口,只是接口对应的版本不一样从1.0到1.1,按照需求对1.1版本的接口进行实现,这样发布时,新老接口就会并存,如果需要强制更新审核通过之后会将老版本(1.0版本代码去掉)停掉运行新版本,如果不需强制更新,那么就可以新老版本并存

客户端调用,小L用的是dubbox 所以不同的版本配置不同的路径即可

1
2
3
4
5
6
7
8
9
         http: //127.0.0.1:80/a//xxx/v1(老)
     @GET
     @Path ( "/xxx/v1" )
     public  ApiResult xxx( @QueryParam ( "code" ) String resourceCode)
     
      http: //127.0.0.1:80/a//xxx/v2(新)
     @GET
     @Path ( "/xxx/v2" )
     public  ApiResult xxx( @QueryParam ( "code" ) String resourceCode)

如果是数据结构发生变化的话小L不建议使用该方式

这样的情况需要具体问题具体定解决方案,可以分开部署,可以做预发布环境,部署1个具有新表结构和对象的测试数据库(预发布环境)。

对于改动较大的,产品新增了重量级新功能的,业务层面或者底层表结构上都不兼容的,建议是要做强制升级的。

wKioL1mbxkKBMsjbAAE839KUT4I564.jpg-wh_50

注:接口的实现方法 按照接口版本定;接口新加的方法写在V1版本中,如果V1版本中的某个方法参数条件变化了,那么把新的实现写在V2版本里面,V1版本的实现保留










本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/1954550,如需转载请自行联系原作者
目录
相关文章
|
2月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
28天前
【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub的解决之法
An exception occurred while retrieving properties for Event Hub: logicapp. Error Message: 'ClientSecretCredential authentication failed: AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Che
|
2月前
|
开发框架 .NET Windows
【App Service】在App Service中配置Virtual applications and directories,访问目录中的静态文件报错404
【App Service】在App Service中配置Virtual applications and directories,访问目录中的静态文件报错404
|
2月前
|
C++
【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub
【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub
|
2月前
|
Java 应用服务中间件 开发工具
[App Service for Windows]通过 KUDU 查看 Tomcat 配置信息
[App Service for Windows]通过 KUDU 查看 Tomcat 配置信息
|
2月前
|
Java 应用服务中间件 Windows
【App Service for Windows】为 App Service 配置自定义 Tomcat 环境
【App Service for Windows】为 App Service 配置自定义 Tomcat 环境
|
2月前
|
Java
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
|
2月前
|
开发者
【Azure Logic App】中国区标准版本的逻辑应用(Standard Logic App)无法查看历史执行记录的解决之道
【Azure Logic App】中国区标准版本的逻辑应用(Standard Logic App)无法查看历史执行记录的解决之道
|
2月前
|
Linux C++ Docker
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
|
2月前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
下一篇
无影云桌面