CSE/ServiceComb 版本号规则

本文详细介绍了CSEJAVASDK中版本号的定义规则,推荐使用x.y.z或a.b.c.d的形式,其中各部分为不超过两个字节的整数。版本号用于表达接口兼容性,支持多版本并存及自动请求转发,解决灰度版本问题。

CSE JAVA SDK使用service_description.version定义版本号, 目前推荐支持如下规则:

x.y.z

或者

a.b.c.d

其中x/y/z/a/b/c/d都是一个int值(short),不能超过2个字节(注意不是4个字节)的数字大小。 

关于版本规则的特殊说明

CSE JAVA SDK的版本号必须采用数字,而不能使用字符等特殊字符。 因为这个版本号,不是传统意义上的版本管理的概念,用于表达一些版本逻辑,比如主要、次要、补丁等。 CSE的版本号主要用于表达“接口兼容”性概念, 版本号变化表示可能存在接口变更。 在处理路由规则的时候,会基于契约和版本号进行分组,将兼容的接口分为一组,从而实现多版本并存和自动基于接口兼容性进行请求转发。 这个特性是CSE JAVA SDK非常独特的特性,优雅的解决了灰度版本并存的问题,而不需要用户做任何额外的开发。 

关于接口兼容性的一些推荐实践参考:https://huaweicse.github.io/cse-java-chassis-doc/question-and-answer/interface-compatibility.html

由于CSE基于ServiceComb提供微服务框架,且Dubbo和Java chassis底层都使用了Spring的依赖注入和bean管理系统,所以使用Dubbo的服务迁移到ServiceComb工作量较小,主要改动在依赖和配置方面。而Seata是一个开源的分布式事务解决方案。以下是集成CSEServiceComb)、Dubbo和Seata的大致方法: #### 依赖配置 在项目的`pom.xml`文件中添加相关依赖。 ```xml <!-- CSEServiceComb)依赖 --> <dependency> <groupId>com.huaweicloud</groupId> <artifactId>cse-sdk-all</artifactId> <version>最新版本号</version> </dependency> <!-- Dubbo依赖 --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>对应的版本号</version> </dependency> <!-- Seata依赖 --> <dependency> <groupId>io.seata</groupId> <artifactId>seata-all</artifactId> <version>对应的版本号</version> </dependency> ``` #### 服务提供方配置 如果是服务提供方,需要进行如下配置改动。 - **替换依赖**:将Dubbo相关依赖替换为CSEServiceComb)相关依赖,同时保留必要的Dubbo配置以实现平滑过渡。 - **配置文件**:在配置文件中添加CSEServiceComb)和Seata的相关配置。例如,在`application.properties`或`application.yml`中配置CSE的服务注册中心地址、Seata的事务组等信息。 ```properties # CSE服务注册中心地址 cse.service.registry.address=http://127.0.0.1:30100 cse.service.name=my-service # Seata相关配置 seata.tx-service-group=my_tx_group seata.service.vgroup-mapping.my_tx_group=default ``` #### 服务调用方配置 服务调用方同样要进行依赖替换和配置调整。在调用服务时,需要使用CSEServiceComb)的服务发现机制来定位服务,同时结合Seata实现分布式事务管理。 #### Seata配置 需要启动Seata Server,并根据业务需求配置Seata的事务模式(如AT、TCC等)。在应用中添加Seata的全局事务注解,确保业务逻辑在分布式事务的管理下执行。 ```java import io.seata.spring.annotation.GlobalTransactional; import org.springframework.stereotype.Service; @Service public class MyService { @GlobalTransactional public void businessMethod() { // 业务逻辑 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值