多版本|学习笔记

简介: 快速学习多版本

开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门:多版本】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/624/detail/9469


多版本


内容介绍:

一、多版本

二、进行配置

三、进行测试


一、多版本

dubbo 中一个重要功能多版本,它的使用场景是,某一个接口功能出现了一个不兼容的升级,系统中刚写完的新功能立即全用上,有可能新功能不稳定导致整个系统不稳定,可以先让系统中的一部分人来用新功能,另外一部分人依旧用这个功能的老版本,如果发现新功能的版本都稳定了,再把这部分老版本替换成新版本,就可以利用到多版本的特性。


二、进行配置

把以前服务均停掉,以 user-service 为例,用一个版本打印 old,代码为System.out.println(“UserServixeImpl……old…”)

再为其写上一个版本,名称为 UserServiceImpl2,打印 new,代码为System.out.println(“UserServixeImpl……new…”),此时相当于一个 Userservice 接口有新旧功能,可在 provider里配置出来,比如第一个 user-service 接口指向的是 userServiceImpl01,可在 service 这规定一个 version 版本为1.0.0,

代码为

<dubbo:service interface=””com.atguigu.gmall.service.UserService”

ref=”UserServiceImpl01” timeout=”1000” version=”1.0.0”

<dubbo:method name=”geuUserAddressList” timeout=”1000”></dubbo:method>

</dubbo:service>

同时给提供者再配置一个

代码为

<bean id”yserServiceImpl01” class = “”com.atguigu.gmall.service.imp.User-Service

<dubbo:service interface=””com.atguigu.gmall.service.UserService”

ref=”UserServiceImpl01” timeout=”1000” version=”2.0.0”

<dubbo:method name=”geuUserAddressList” timeout=”1000”></dubbo:method>

</dubbo:service>

<bean id=”userServiceImpl02”class=

com.atguigu.gmall.service.impl.UserServiceImpl2”></bean>

上一个 version 版本为1.0.0,下一个 version 版本为2.0.0,两个版本同时存在,这样在消费方声明调用 reference 引用时,就可以通过 version 声明,用 User-service1.0.0版本服务。


三、进行测试

先将服务提供者启动起来

image.png

测试结果为old

image.png待新版本测试稳定,将老版本 version 换成 version=”2.0.0”,接下来打印的将是 new,进行测试

测试结果为new

此外也可以通过修改 consumer 里的 version 改为 version=”*”,

代码为 id=“userService” timeout=”5000” reties=”3” version=”*”

随机任意调用一个版本,测试结果不一定是 old 还是 new,说明是 dubbo 的随机调用,这样就可以从平滑的旧版本升级到新版本,也就是 dubbo 官网里介绍的实现灰度发布。

相关文章
|
Ubuntu Linux
Centos or Ubuntu 重新安装network服务
Centos or Ubuntu 重新安装network服务
|
存储 SQL 分布式计算
大数据技术栈列表
大数据技术栈列表
359 0
|
SQL 消息中间件 Java
SpringBoot整合RocketMQ发送消息过滤
消息者在进行消息订阅时,除了可以指定要订阅消息的Topic外,还可以对指定Topic中的消息根据指定条件进行过滤,即可以订阅比Topic更加细粒度的消息类型。 对于指定Topic消息的过滤有两种过滤方式:Tag过滤与SQL过滤
|
人工智能
西门子S7-300的硬件结构,各模块按照什么顺序来组态?
今天我们来介绍一下西门子S7-300的硬件结构,并和大家讲一下S7-300各模块是按照什么顺序来组态的。
西门子S7-300的硬件结构,各模块按照什么顺序来组态?
|
网络协议 网络架构
解密IP分片与重组:数据传输中的关键技术
本文介绍了IP分片与重组的工作原理及其在数据传输中的重要性。IP分片将大数据包分割为小分片进行传输,重组则将其重新组合为完整数据包。这种技术能适应不同网络链路的传输单元限制,提高传输效率和可靠性。随着IPv4地址枯竭,IPv6的采用越来越普遍,了解IP分片与重组对于网络优化和IPv6部署至关重要。
818 1
|
SQL 安全 网络安全
直播软件源码开发搭建提高安全性方案
直播软件源码平台的防火墙功能是极为重要,且不可或缺的,它的加入有效提高了直播软件源码平台的安全性,保护了用户的信息,为用户构建一个绿色安全的直播软件平台。
直播软件源码开发搭建提高安全性方案
|
监控 安全 网络安全
防火墙以及路由器和交换机的安装,调试以及维护工作的详细说明方法?
防火墙以及路由器和交换机的安装,调试以及维护工作的详细说明方法?
|
SQL 分布式计算 大数据
MaxCompute ODPS 重装上阵,QUALIFY
MaxCompute支持QUALIFY语法过滤Window函数的结果,使得查询语句更简洁易理解。Window函数和QUALIFY语法之间的关系可以类比聚合函数+GROUP BY语法和HAVING语法。
685 0
【每日一道智力题】之如何最快的找到最轻的砝码
【每日一道智力题】之如何最快的找到最轻的砝码
463 0