文档首页/ 应用管理与运维平台 ServiceStage/ 开发指南/ 微服务开发指南/ 附录/ Spring Cloud Huawei与Java-chassis历史版本修复问题
更新时间:2024-10-23 GMT+08:00
分享

Spring Cloud Huawei与Java-chassis历史版本修复问题

本章列出了在Spring Cloud Huawei与Java-chassis框架历史版本中修复的所有问题。

Spring Cloud Huawei历史版本及版本修复问题

spring-cloud-huawei版本

主要修复问题

1.11.6-2023.0.x

  • snakeyaml、jackson、guava版本安全漏洞。
  • 路由开关关闭后,微服务应用启动失败,找不到nacos/servicecomb适配实现类。
  • 当前服务配置中心配置未变化,发布配置刷新事件,请求过程中可能出现池化配置找不到。

1.11.6-2022.0.x

1.11.6-2021.0.x

1.11.4-2022.0.x

  • RBAC安全认证未开启,框架依然会监听认证过期事件。
  • gateway/webflux路由无法获取请求头设置信息。
  • 微服务API安全认证开启后,规则未设置,所有请求不通过。
  • 服务端熔断规则不生效。

1.11.4-2021.0.x

1.11.3-2022.0.x

指定服务名情况下,实例隔离策略不生效。

1.11.3-2021.0.x

1.11.2-2022.0.x

  • API安全认证未设置黑、白名单策略时,空指针异常。
  • 服务端、客户端同时设置相同请求头,key不生效。

1.11.2-2021.0.x

1.11.0-2022.0.x

trace上下文配置基于动态配置不生效。

1.11.0-2021.0.x

1.10.13-2021.0.x

同时调用多个服务情况下,降级不生效。

1.10.11-2021.0.x

实例隔离治理不生效。

1.10.9-2021.0.x

  • 指定服务名设置重试策略不生效。
  • 服务降级错误返回“null”字符串,修改为返回null。

1.10.8-2021.0.x

负载均衡规则不生效。

1.10.8-2020.0.x

1.10.7-2021.0.x

服务注册发现开关关闭,启动失败。

1.10.7-2020.0.x

1.10.6-2021.0.x

监控信息中缺少环境信息。

1.10.6-2020.0.x

1.10.5-2021.0.x

重试次数太多导致请求长时间无响应。

1.10.5-2020.0.x

1.10.4-2021.0.x

identifierRateLimiting限流上下文获取失败。

1.10.4-2020.0.x

1.10.3-2021.0.x

治理配置第一次变化时不生效。

1.10.3-2020.0.x

1.10.2-2021.0.x

  • 调整默认配置刷新时间为15s。
  • 实例隔离过滤器空指针异常。

1.10.2-2020.0.x

1.10.1-2021.0.x

  • 非客户端请求上下文空指针异常。
  • 路由客户端编译请求头失败。
  • 灰度版本策略生效。
  • ClientRequest非RequestData类型下转化异常。

1.10.1-2020.0.x

1.10.0-2021.0.x

  • 服务删除、重启无法刷新ribbon缓存,导致请求到不可用服务,报no host to route。
  • 动态配置下灰度发布配置规则,修改配置规则不生效。
  • 启动类application在业务包外层启动失败。
  • 网关最大重试次数不生效。

1.10.0-2020.0.x

1.9.1-2020.0.x

  • 某些场景下,启动类ags属性加载不正确。
  • 网关配置最大重试次数无限重试。
  • 灰度动态配置不生效。

1.9.0-2020.0.x

instance.healthCheck.mode值为pull,自定义配置healthCheckInterval健康检查时间不生效。

1.8.0-2020.0.x

  • 非long polling模式下大量配置查询任务,触发查询任务无间隔时间。
  • cse操作页面对服务实例下线后,服务实例调用依然正常。
  • management.server.port和server.port两个端口不一致,启动报错。
  • gateway查询到不同环境的实例。

1.7.0-2020.0.x

  • webmvc与路由结合导致gateway启动失败。
  • gateway无法实现基于服务发现的路由定义功能。
  • gateway无法跨应用服务发现。

1.6.1-2020.0.x

说明:

存在重大问题,不建议使用:

  • 非常频繁地查询配置中心。
  • 查询到错误的配置。

1.9.4-Hoxton

当前服务配置中心配置未变化,发布配置刷新事件,请求过程中可能出现池化配置找不到。

1.9.3-Hoxton

服务删除、重启无法刷新ribbon缓存,导致请求到不可用服务,路由不到可用服务。

1.9.2-Hoxton

服务端删除实例后重新注册实例,客户端选择错误的服务端实例。

1.9.1-Hoxton

  • 某些场景下,启动类ags属性加载不正确。
  • 网关配置最大重试次数无限重试。
  • 灰度动态配置不生效。

1.9.0-Hoxton

instance.healthCheck.mode值为pull,自定义配置healthCheckInterval健康检查时间不生效。

1.8.0-Hoxton

  • 非long polling模式下大量配置查询任务,触发查询任务无间隔时间。
  • cse操作页面对服务实例下线后,服务实例调用依然正常。
  • management.server.port和server.port两个端口不一致启动报错。
  • gateway查询到不同环境的实例。

1.7.0-Hoxton

  • webmvc与路由结合导致gateway启动失败。
  • gateway无法实现基于服务发现的路由定义功能。
  • gateway无法跨应用服务发现。

1.6.0-Hoxton

  • SDK针对401、403错误码,对引擎做出重试请求。
  • gateway默认路由规则不生效。
  • 无法跨应用调用。

1.5.9-Hoxton

  • RBAC鉴权功能不生效。
  • 灰度路由时无法获取到微服务最新版本。
  • 某些JDK版本不支持swagger循环依赖。

1.5.8-Hoxton

  • gateway服务发现中选择错误实例。
  • 实例状态为空时调用异常。

1.5.6-Hoxton

  • AK/SK配置后不生效,鉴权失败。
  • server.env配置不生效,全部为空。
  • 配置中心治理配置项删除后仍然能使用。
  • 滑动窗口熔断配置属性不生效。
  • 注册中心开启watch模式后,空指针异常。
  • 读取环境变量PAAS_CSE_SC_ENDPOINT时只能读取第一个地址,无法读取第二个。

1.5.0-Hoxton

  • 错误的治理规则导致空指针异常。
  • AK/SK未配置时启动,报空指针异常。
  • 服务启动后首次并发请求,限流策略不生效。
  • governance治理选择错误服务导致请求异常。
  • 当环境配置为production时,契约不变,服务重启会失败。

1.6.4-Greenwich

当前服务配置中心配置未变化,发布配置刷新事件,请求过程中可能出现池化配置找不到。

1.6.3-Greenwich

服务删除、重启无法刷新ribbon缓存,导致请求到不可用服务,路由不到可用服务。

1.6.1-Greenwich

gateway跨应用服务发现异常。

1.6.0-Greenwich

  • SDK针对401、403错误码,对引擎做出重试请求。
  • gateway路由规则不生效。
  • 灰度路由时无法获取到微服务最新版本。
  • AK/SK配置不生效。
  • server.env配置不生效,全部为空。
  • Servicecenter在watch模式下启动失败。
  • 读取环境变量PAAS_CSE_SC_ENDPOINT时只能读取第一个地址,无法读取第二个。
  • 不支持跨应用调用。

1.5.0-Greenwich

  • 错误的治理规则导致空指针异常。
  • AK/SK未配置时空指针异常。
  • 服务启动后首次并发请求,限流策略不生效。
  • governance服务转发错误。
  • 环境是production时,重复注册契约导致启动失败。

v1.3.3-Greenwich

注册中心监听不生效。

1.6.1-Finchley

  • 服务启动后第一次并发,调用随机失败。
  • 微服务跨应用调用失败。

1.6.0-Finchley

  • SDK针对401、403错误码,对引擎做出重试请求。
  • gateway路由规则不生效。
  • 灰度路由时无法获取到微服务最新版本。
  • AK/SK配置不生效。
  • server.env配置不生效,全部为空。
  • Servicecenter在watch模式下启动失败。
  • 读取环境变量PAAS_CSE_SC_ENDPOINT时只能读取第一个地址,无法读取第二个。
  • 不支持跨应用调用。

1.5.1-Finchley

配置中心治理配置删除后仍然可以使用。

v1.3.9

说明:

存在重大问题,不推荐使用。

governance存在服务转发严重错误。

v1.3.8

说明:

存在重大问题,不推荐使用。

governance存在服务转发严重错误。

v1.3.4

  • 注册线程池无法正确关闭并导致泄漏。
  • actuator开启后微服务注册失败。
  • 某些场景心跳次数过多。

v1.3.3

  • websocket在wss协议请求失败。
  • 注册中心watch不生效。

v1.3.2

  • 当环境设置为production时契约注册失败。
  • 注册中心url未设置时随机选择地址失败。
  • 注册中心配置域名时watch异常。

v1.2.0

从ServiceStage读取默认的ak/sk配置时,初始化大量对象,导致内存泄漏。

v1.1.0

  • heartbeat信息日志过多。
  • 微服务间SSL调用不生效。
  • url包含空格时请求异常。

v1.0.0

某些场景无法自动服务发现。

v0.0.3

  • 服务发现down状态实例。
  • 配置的路径过长。
  • 微服务连接本地CSE引擎失败。

Java Chassis历史版本及版本修复问题

java-chassis版本

主要修复问题

3.1.0

  • 扫描@RestController注解类报UnsupportedOperationException异常。
  • idleTimeout未正确设置带来的一些connection closed问题。

3.0.2

  • 配置中心存在多条相同key时,更新配置不生效。
  • 节点信息未正确销毁导致请求异常。

3.0.1

开始支持fallback标签路由。

2.8.16

idleTimeout未正确设置带来的一些connection closed问题。

2.8.15

配置中心存在多条相同key时,更新配置不生效。

2.8.14

  • 请求上下文丢失。
  • SCBEngine关闭异常。
  • 当内容为空时buffer reader不正确。

2.8.13

  • 连接超时,metrics信息统计不正确。
  • 上传附件为空时SDK异常。

2.8.12

  • 注册中心频繁变更微服务,导致新部署实例无法找到,仍然使用缓存版本实例。
  • vertx偶尔关闭异常,阻塞服务正常关闭。

2.8.11

DefaultHttpClientFilter反序列化响应body失败时,异常信息不正确。

2.8.10

  • ResponseEntity设置的Content-Type不生效。
  • 注册中心频繁变更微服务,导致新部署实例无法找到,仍然使用缓存版本实例。

2.8.9

  • 服务启动注册类bean初始化2次问题。
  • 配置兼容1.x引擎注册中心配置。
  • 并发注册时,缓存实例信息不刷新。

2.8.8

  • 微服务路由应从实例中获取属性以决定路由分发策略。
  • HttpUtils解析Content-Disposition错误导致ReadStreamPart无法获取到文件名。

2.8.7

可用az默认配置为null。

2.8.6

  • 调整HTTP客户端keep-alive配置项。
  • 并发访问时获取微服务版本号。

2.8.5

连续错误次数为0或小于0时,错误百分比无法生效。

2.8.4

实例改变时间异常导致请求错误。

2.8.3

路由规则中caseInsensitive定义。

2.8.2

  • 治理规则生效匹配中,apiPath比较匹配存在问题。
  • mvc请求中body参数为null时异常。

2.8.1

负载隔离开关未生效。

2.8.0

  • idleTimeout和keepAliveTimeout未正确设置。
  • edge网关中highway协议时间解析错误。
  • 限流治理规则空指针异常。

2.7.10

  • 仪表盘环境变量上报不正确。
  • 注册不可用时,已缓存服务被清除导致请求异常的。

2.7.9

autoDiscovery开关打开时空指针异常。

2.7.8

  • 元数据内存泄漏。
  • findByContext方法导致内存溢出。
  • PriorityInstancePropertyDiscoveryFilter输出debug日志。

2.7.6

  • ProducerOperationHandler错误日志打印traceID。
  • 实例隔离过滤器未生效。
  • 当路由规则版本信息为空时出现空指针异常。

2.7.5

  • 每次拉取实例发布事件而导致过多事件排队。
  • zipkin某些场景Span为空。
  • kie配置中心不支持filesource逗号分隔。

2.7.3

  • 灰度发布动态修改配置无效。
  • 请求上下文合并逻辑冲突。

2.7.0

IsolationDiscoveryFilter创建过多对象。

2.6.3

  • 负载均衡选择服务异常时重试异常。
  • 重试次数计算不生效。

2.6.0

  • 文件下载时,part内容为空导致空指针异常。
  • highway协议空字符串系列化。
  • kie在非long pulling模式下过快拉取配置。
  • 新引擎创建后首次部署sdk报空指针异常。
  • 增加highway协议,增加默认响应体大小限制20M。

2.5.2

servicecomb客户端连接idleTimeout默认时间从60s调整为30s。

2.5.1

kie第一次拉取配置为空时抛出异常。

2.5.0

在vert.x工作池中RPC调用失败。

2.3.0

  • 配置中心配置更新,流控组件异常。
  • edge网关服务添加自定义executor失败。
  • AK/SK开关打开,第一次获取加密类失败。
  • 配置不支持占位符配置。
  • 熔断配置slidingWindowType不生效。
  • 转发请求到不存在的微服务时出现OOM。
  • 重试错误地址出现404异常。
  • 注册中心监听实例失败。
  • XmlViewResolver和SPI两种方式同时注入某个bean类出现死锁。
  • 配置变更后灰度路由未使用到最新版本。
  • 配置filesource时触发配置变化事件不正确。
  • 注册中心地址支持数组占位符配置。
  • 开启仪表盘功能时,空指针异常导致启动失败。

2.2.4

2.2.3

2.2.2

2.2.1

2.2.0

  • 治理配置未正确处理空配置和打印错误操作。
  • RestTemplate请求上传多个文件出现随机失败。
  • deleteAfterSuccess为true时servlet上下文中的下载文件删除失败。

2.1.6

2.1.5

  • main方法不存在包名时启动异常。
  • 第三方服务注册启动时异常。
  • http2请求设置响应头信息异常。
  • yaml不安全解析。
  • 解析集合占位符。
  • APP_MAPPING解析servicestage环境变量失败。

2.1.3

  • 被隔离实例尝试请求正确返回后未正常恢复。
  • 超时异常连接关闭触发异步回调。
  • 服务配置和spring value默认值不生效。
  • servicecomb.references.version-rule未生效。
  • 超时异常时服务隔离未生效。

2.1.2

  • 接口未变化,JDK版本不同,契约读取顺序不一致导致契约校验失败。
  • 服务状态不正确导致隔离实例无法被尝试调用。
  • 网关读取微服务名称抛空指针异常。

2.1.1

  • 原生参数为空时highway协议解析抛空指针异常。
  • 当连接超时时获取连接时间为0。
  • 无法正确处理yaml和properties配置。
  • RegistryUtils API不使用版本规则参数。

2.1.0

  • 设置实例信息持续失败导致OOM。
  • 微服务元数据中客户端标签错误。
  • 多实例在不同版本和api时服务调用异常。
  • highway协议中带appId请求异常。

2.0.2

  • jackson转化会覆盖所有对象。
  • kie解析配置错误。
  • kie增加版本号查询配置。

2.0.1

  • Http2中idleTimeoutInSeconds未使用。
  • 同时使用@RequestHeader(value ="xxx")和聚合参数导致空指针异常。
  • 接口参数定义为对象时请求异常。

1.3.11

  • HTTP客户端keep-alive配置项。
  • 连续错误次数为0或小于0时,错误百分比无法生效。

1.3.10

  • 负载隔离开关未生效。
  • http2请求设置响应头信息异常。

1.3.9

限流治理规则空指针异常。

1.3.8

实例隔离过滤器不生效。

1.3.7

IsolationDiscoveryFilter创建过多对象。

1.3.5

  • 请求客户端idleTimeout未生效。
  • 服务器挂起而且没有任何堆栈信息。

1.3.3

  • yaml不安全解析。
  • 被隔离实例尝试请求正确返回后未正常恢复。

1.3.2

1.3.1

  • 接口未变化,JDK版本不同,契约读取顺序不一致导致契约校验失败。
  • 同时使用@RequestHeader(value ="xxx")和聚合参数导致空指针异常。
  • 服务状态不正确导致隔离实例无法被尝试调用。
  • 实例过多时CPU负载过高。
  • 文件上传异常导致无法返回。
  • 注册中心异常重新注册时默认状态重置。
  • SwaggerProducerOperation打印敏感信息日志。

1.3.0

  • FallbackPolicy无异常信息返回。
  • CseAsyncRestTemplate不支持设置header。
  • RSAProviderTokenManager导致内存泄漏。
  • ServiceCombServerStats.getFailedRate抛ArithmeticException: /by zero。
  • 存在重写方法时,swagger生成契约异常。
  • RPC调用方法多个参数且第一个参数是Object时,第二个参数为空的。

1.2.0

  • 不支持@ConfigurationProperties注解。
  • http2不支持文件下载。
  • 当存在客户端acceptType时文件下载异常。
  • 启动失败时,销毁方法将原始异常信息覆盖。
  • metrics-prometheus适配prometheus-2.x出错。
  • 框架计算CPU使用率不准确。
  • 契约为空时异常。
  • 基于ServiceComb开发的springMVC应用启动失败。
  • rest调用异常时收集信息错误。
  • 当返回类型定义为ResponseEntity<Void>时报空指针异常。
  • AZ亲和在空实例时异常。
  • 线程队列占满时拒绝请求策略。
  • httpClientResponse.exceptionHandler抛出异常。

1.1.0

  • 启用延迟错误注入后业务线程死锁。
  • 访问最新服务异常。
  • 由于不可用服务清理未及时导致请求异常。
  • edge服务未正确返回servlet的响应码。
  • 解决ubuntu中使用mvn install命令打包。
  • BeanParamAnnotationProcessor生成的参数顺序不稳定。
  • 回调场景使用老版本实例属性导致请求错误。
  • 下载内容不正确。
  • @ApiResponse注解丢失响应类型。
  • 请求参数编码和解码不正确。
  • json解析错误返回码错误。
  • servicecomb.xx.xx作为治理规则时不生效。
  • 请求path中包含非法字符时请求连接挂起。
  • 内部类解析抛NotFoundException异常。

1.0.0

  • 限流策略不生效。
  • 同时设置以cse和servicecomb开头的配置导致无法获取配置值。
  • RPC请求void方法时异常。
  • 客户端请求完一个未注册服务后,即使后面这个服务重新注册了,请求还是找不到服务端。
  • 查询未注册服务空指针。
  • 1.0.0-m2
  • 使用zuul做网关进行路由,当同一个微服务接口同时开放rest和highway方式时,出现客户端无法调用。
  • 当服务名或契约id中包含“.”时,qps handler异常。
  • 响应加权负载策略初始化和无状态访问。
  • 不支持中文名称的文件下载。
  • 服务包含环境变量时重新注册异常。
  • producer实现类没有实现方法时抛空指针异常。
  • 上传内容为空时抛空指针异常。
  • 当上传文件大小超过服务端限制时,客户端返回一个错误的响应。
  • 服务端返回Transfer-Encoding header时edge网关抛出异常。
  • 并发请求时存在服务并发发现的问题。
  • edge网关服务覆盖所有错误码统一返回502错误码。
  • 某些场景优雅下线不生效。

0.5.0

  • RSAConsumerTokenManager创建鉴权token。
  • 服务下线时,未从注册中心取消注册。
  • 服务自动发现不生效。
  • edge网关服务未正确处理404请求。

0.4.0

  • servlet请求超时时,同时引发不支持async调用或空指针异常。
  • 调用出现异常时无法获取响应。
  • rest producer返回错误类型。

0.2.0

  • 在重试线程中无法重新注册。
  • 契约注册失败无法从日志反映异常信息。
  • 服务启动时,注册报空指针异常。

相关文档