约束与限制
Nacos引擎版本兼容性说明
CSE Nacos引擎版本 |
兼容Nacos社区版本 |
兼容性 |
---|---|---|
2.1.0.x |
2.1.0 |
100% |
CSE Nacos引擎很好地兼容社区Nacos 2.1.0及其以下版本,且向下兼容。例如:微服务使用开源Nacos 1.x.x版本,也可以使用CSE Nacos引擎。
配置中心兼容Nacos 1.0起所有的客户端版本,服务发现兼容Nacos 1.2起的所有客户端版本, 因此建议使用Nacos 1.2.0之后客户端版本。 Nacos 2.x.x版本新增了长连接功能,需要使用长连接能力请升级至2.x.x版本。
Nacos 2.1.0版本后,默认关闭了双写能力,因此无法支持从Nacos 1.x版本平滑升级到2.1.0+的能力,如需要使用平滑升级能力,从Nacos 1.x直接升级到Nacos 2.1.0+版本,需要在application.properties文件中配置参数nacos.core.support.upgrade.from.1x=true。
Nacos引擎与微服务框架版本关系
CSE Nacos引擎版本 |
Spring Cloud Alibaba版本 |
Spring Cloud版本 |
Spring Boot版本 |
---|---|---|---|
2.1.0.x |
2022.0.0.0-RC* |
Spring Cloud 2022.0.0 |
3.0.0 |
2021.0.4.0* |
Spring Cloud 2021.0.4 |
2.6.11 |
|
2021.0.1.0 |
Spring Cloud 2021.0.1 |
2.6.3 |
|
2021.1 |
Spring Cloud 2020.0.1 |
2.4.2 |
|
2.2.10-RC1* |
Spring Cloud Hoxton.SR12 |
2.3.12.RELEASE |
|
2.2.9.RELEASE |
Spring Cloud Hoxton.SR12 |
2.3.12.RELEASE |
|
2.2.8.RELEASE |
Spring Cloud Hoxton.SR12 |
2.3.12.RELEASE |
|
2.2.7.RELEASE |
Spring Cloud Hoxton.SR12 |
2.3.12.RELEASE |
|
2.2.6.RELEASE |
Spring Cloud Hoxton.SR9 |
2.3.2.RELEASE |
|
2.2.1.RELEASE |
Spring Cloud Hoxton.SR3 |
2.2.5.RELEASE |
|
2.2.0.RELEASE |
Spring Cloud Hoxton.RELEASE |
2.2.X.RELEASE |
|
2.1.4.RELEASE |
Spring Cloud Greenwich.SR6 |
2.1.13.RELEASE |
|
2.1.2.RELEASE |
Spring Cloud Greenwich |
2.1.X.RELEASE |
|
2.0.4.RELEASE(停止维护,建议升级) |
Spring Cloud Finchley |
2.0.X.RELEASE |
|
1.5.1.RELEASE(停止维护,建议升级) |
Spring Cloud Edgware |
1.5.X.RELEASE |
ServiceComb引擎微服务开发框架版本要求
微服务开发框架推荐版本如下表所示。
- 如果已经使用低版本的微服务开发框架构建应用,建议升级到推荐版本,以获取最稳定和丰富的功能体验。
- 如果已使用Spring Cloud微服务开发框架开发了应用,推荐使用Spring Cloud Huawei接入应用。
- Spring Cloud Huawei各分支版本与Spring Boot、Spring Cloud、Java Chassis及JDK编译版本的配套关系请参考版本配套说明。
- 如果基于开源开放和业界生态组件新开发微服务应用,可选择Spring Cloud框架。
- 如果希望使用ServiceComb引擎提供的开箱即用的治理能力和高性能的RPC框架,可选择Java Chassis框架。
框架 |
推荐版本 |
说明 |
---|---|---|
Spring Cloud Huawei |
1.10.9-2021.0.x及以上 |
采用Spring Cloud Huawei项目提供接入支持:
Spring Cloud微服务开发框架的版本说明请参见:https://github.com/huaweicloud/spring-cloud-huawei/releases。 |
Java Chassis |
2.7.10及以上 |
可以直接使用开源项目提供的软件包接入,不需要引用其他第三方软件包。 Java Chassis微服务开发框架的版本说明请参见:https://github.com/apache/servicecomb-java-chassis/releases。 |
系统升级、改造过程中,三方软件冲突是最常见的问题。随着软件迭代速度越来越快,传统的软件兼容性管理策略已经不适应软件的发展,您可以参考三方软件版本管理策略来解决版本冲突。
Spring-cloud-huawei、Servicecomb及Sermant功能对比
一级特性 |
二级特性 |
serviccomb-java-chassis |
spring-cloud-huawei |
sermant agent |
备注 |
微服务网关 |
服务端限流 |
√ |
√ |
√ |
- |
服务端隔离仓 |
√ |
√ |
√ |
- |
|
客户端熔断 |
× |
√ |
× |
- |
|
客户端容错 |
× |
√ |
× |
- |
|
客户端降级 |
× |
× |
× |
- |
|
客户端故障注入 |
× |
× |
× |
- |
|
负载均衡策略 |
√ |
√ |
× |
- |
|
灰度发布 |
× |
√ |
√ |
- |
|
优雅停机 |
√ |
√ |
× |
- |
|
微服务治理 |
优雅上下线 |
√ |
√ |
√ |
- |
无损升级 |
√ |
√ |
√ |
- |
|
服务端限流 |
√ |
√ |
√ |
- |
|
客户端容错 |
√ |
√ |
√ |
- |
|
客户熔断 |
√ |
√ |
√ |
- |
|
客户端降级 |
√ |
√ |
√ |
- |
|
服务端隔离仓 |
√ |
√ |
√ |
- |
|
客户端隔离仓 |
√ |
√ |
√ |
- |
|
负载均衡策略 |
√ |
√ |
√ |
- |
|
灰度发布 |
√ |
√ |
√ |
- |
|
全链路日志追踪 |
√ |
√ |
× |
- |
|
服务治理状态上传 |
√ |
√ |
× |
- |
|
快速失败 |
√ |
√ |
× |
- |
|
故障注入 |
√ |
× |
√ |
- |
|
黑白名单 |
√ |
√ |
× |
- |
|
注册发现 |
本地注册发现 |
√ |
√ |
× |
- |
单注册-CSE |
√ |
√ |
√ |
- |
|
单注册-ServiceCenter |
√ |
√ |
√ |
- |
|
双注册 |
× |
× |
√ |
双注册指同时注册到两个注册中心,当前sermant支持同时注册到cse和宿主原生注册中心。 |
|
配置中心支持 |
servicecomb引擎 |
√ |
√ |
√ |
可基于配置中心下发配置, 例如服务治理规则、业务配置。 |
Nacos引擎 |
√ |
√ |
√ |
||
servicecomb-kie |
√ |
√ |
√ |
||
zookeeper |
× |
× |
√ |
||
轻量化配置中心(zero-config) |
√ |
× |
× |
||
apollo |
× |
× |
× |
||
安全特性 |
安全认证 |
√ |
√ |
× |
服务实例与注册中心以及消费端与生产端之间的认证。 |
开发 |
多协议支持 |
√ |
× |
× |
JavaChassis针对消费与生产端支持多种通信协议,如下:
|
拓展 |
|
|
基于插件开发模式新增能力。 |
- |
配额说明
配额是指您引擎实例中可创建的资源数量限制。如需使用更大配额,请提交工单申请扩大配额。
- Nacos引擎实例中可创建的资源数量限制如表1所示。
- ServiceComb引擎实例中可创建的资源数量限制如表2所示。
表2 ServiceComb引擎资源配额限制 功能
资源
最大配额
是否支持修改配额
注意事项
微服务管理
微服务版本数量(个)
10,000
暂不支持
-
单个实例数据量(KB)
200
支持
扩大配额后,将增加微服务发现的时延。
单个微服务契约数量(个)
500
暂不支持
-
配置管理
单个配置数据量(KB)
128
暂不支持
-
单个应用级配置数量(个)
2,000
暂不支持
-
微服务治理
应用级的治理策略
1,000
暂不支持
所有的应用的治理策略总和不能超过1000条。
- 单个治理策略包含:治理规则和业务场景。治理规则和业务场景实际会等量占用配置中心的配额。
- 微服务版本数:微服务场景中版本用来标记微服务的迭代记录,方便对微服务的不同迭代进行管理。
- 微服务实例数:实例是一个微服务的最小运行和部署单元,通常对应一个应用进程。同一个微服务通过部署在多个容器或虚机,可以实现多个实例同时运行。
- 配置条目数:微服务场景中的配置是指对程序代码中某些变量的取值控制。比如,动态配置就是通过在微服务运行过程中对某些变量的取值进行动态变更。