apache / servicecomb-java-chassis

ServiceComb Java Chassis is a Software Development Kit (SDK) for rapid development of microservices in Java, providing service registration, service discovery, dynamic routing, and service management features
Apache License 2.0
1.9k stars 801 forks source link

config-apollo组件读取yaml类型的Namespace 无法正确的解析值 #4169

Closed s281542686 closed 5 months ago

s281542686 commented 6 months ago

版本为 2.8.9 例如org.apache.servicecomb.config.client.ApolloClient.ConfigRefresh#refreshConfig 请求 http://127.0.0.1:8070/openapi/v1/envs/DEV/apps/api-service/clusters/default/namespaces/application.yaml/releases/latest 返回结果为 { "id": 33, "appId": "api-service", "clusterName": "default", "namespaceName": "application.yaml", "name": "20231227220645-release", "configurations": { "content": "magic: 112234\naaa: \n magic: cccccb\n bbb:\n magic: aaaa12345" }, "comment": "", "dataChangeCreatedBy": "apollo", "dataChangeLastModifiedBy": "apollo", "dataChangeCreatedTime": "2023-12-27T22:06:48.000+0800", "dataChangeLastModifiedTime": "2023-12-27T22:06:48.000+0800" } 无法正确的将configurations 解析为三条配置。

还有就是为什么与Apollo通信不考虑使用Apollo提供的客户端SDK,而是通过第三方应用授权的方式来访问。这个授权码的可操作权限是比较大的。

liubao68 commented 6 months ago

Apollo配置中心以前用户用的比较少,相关代码也是早期外部贡献者写的,记得很久未更新了。 你能帮助优化下相关代码吗? 或者我后续有时间的时候,在详细了解下Apollo,在分析和看下。

Java Chassis2早期这块没提供设计思路,只有简单的使用说明: https://servicecomb.apache.org/references/java-chassis/2.x/zh_CN/config/general-config.html

Java Chassis3 提供了设计说明和集成目标, 但是Apollo的场景, 也还没时间提供实现和测试,只是保留了Java Chassis 2的代码: https://huaweicse.github.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/featured-topics/secrets/applied-config.html

s281542686 commented 6 months ago

Apollo配置中心以前用户用的比较少,相关代码也是早期外部贡献者写的,记得很久未更新了。你能帮助优化下相关代码吗? 或者我后续有时间的时候,在详细了解下Apollo,在分析和看下。

Java Chassis2早期这块没提供设计思路,只有简单的使用说明: https://servicecomb.apache.org/references/java-chassis/2.x/zh_CN/config/general-config.html

Java Chassis3 提供了设计说明和集成目标, 但是Apollo的场景, 也还没时间提供实现和测试,只是保留了Java Chassis 2的代码: https://huaweicse.github.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/featured-topics/secrets/applied-config.html

我尝试下,将2.8.9的版本替换为使用Apollo-sdk。

liubao68 commented 6 months ago

Apollo配置中心以前用户用的比较少,相关代码也是早期外部贡献者写的,记得很久未更新了。你能帮助优化下相关代码吗? 或者我后续有时间的时候,在详细了解下Apollo,在分析和看下。 Java Chassis2早期这块没提供设计思路,只有简单的使用说明: https://servicecomb.apache.org/references/java-chassis/2.x/zh_CN/config/general-config.html Java Chassis3 提供了设计说明和集成目标, 但是Apollo的场景, 也还没时间提供实现和测试,只是保留了Java Chassis 2的代码: https://huaweicse.github.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/featured-topics/secrets/applied-config.html

我尝试下,将2.8.9的版本替换为使用Apollo-sdk。

好的。 贡献代码前注意下:老版本(2.x)修改需要考虑兼容性, 新版本(3.x)修改需要考虑设计一致性(兼容性不重要)。Apollo 目前的客户端感觉还不具备商用条件,可以作为参考实现。 如果把握不好兼容性和设计一致性, 建议你也可以自行实现扩展,供业务使用,不推送到开源。

liubao68 commented 6 months ago

3.x 设计一致性的初步想法:

s281542686 commented 6 months ago

Apollo配置中心以前用户用的比较少,相关代码也是早期外部贡献者写的,记得很久未更新了。你能帮助优化下相关代码吗? 或者我后续有时间的时候,在详细了解下Apollo,在分析和看下。 Java Chassis2早期这块没提供设计思路,只有简单的使用说明: https://servicecomb.apache.org/references/java-chassis/2.x/zh_CN/config/general-config.html Java Chassis3 提供了设计说明和集成目标, 但是Apollo的场景, 也还没时间提供实现和测试,只是保留了Java Chassis 2的代码: https://huaweicse.github.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/featured-topics/secrets/applied-config.html

我尝试下,将2.8.9的版本替换为使用Apollo-sdk。

好的。贡献代码前注意下:老版本(2.x)修改需要考虑兼容性, 新版本(3.x)修改需要考虑设计一致性(兼容性不重要)。Apollo 目前的客户端感觉还不具备商用条件,可以作为参考实现。如果把握不好兼容性和设计一致性, 建议你也可以自行实现扩展,供业务使用,不推送到开源。

org.apache.servicecomb:java-chassis-bom:pom:2.9.0-SNAPSHOT was not found in https://repo.huaweicloud.com/repository/maven/ 这个Pom可以上传一下不,拿不到用起来挺麻烦的

liubao68 commented 6 months ago

Apollo配置中心以前用户用的比较少,相关代码也是早期外部贡献者写的,记得很久未更新了。你能帮助优化下相关代码吗? 或者我后续有时间的时候,在详细了解下Apollo,在分析和看下。 Java Chassis2早期这块没提供设计思路,只有简单的使用说明: https://servicecomb.apache.org/references/java-chassis/2.x/zh_CN/config/general-config.html Java Chassis3 提供了设计说明和集成目标, 但是Apollo的场景, 也还没时间提供实现和测试,只是保留了Java Chassis 2的代码: https://huaweicse.github.io/servicecomb-java-chassis-doc/java-chassis/zh_CN/featured-topics/secrets/applied-config.html

我尝试下,将2.8.9的版本替换为使用Apollo-sdk。

好的。贡献代码前注意下:老版本(2.x)修改需要考虑兼容性, 新版本(3.x)修改需要考虑设计一致性(兼容性不重要)。Apollo 目前的客户端感觉还不具备商用条件,可以作为参考实现。如果把握不好兼容性和设计一致性, 建议你也可以自行实现扩展,供业务使用,不推送到开源。

org.apache.servicecomb:java-chassis-bom:pom:2.9.0-SNAPSHOT was not found in https://repo.huaweicloud.com/repository/maven/ 这个Pom可以上传一下不,拿不到用起来挺麻烦的

这个是开源项目, 我们无法提供公司内部仓库的上传。 你可以尝试使用源码编译。 另外建议你们自己实现Apollo的扩展, 参考java chassis提供的实现。 我在开发指南也把apollo的支持做下说明, java chassis的默认实现非常简单, 不适合作为生产使用,供业务扩展参考。

liubao68 commented 6 months ago

updated documents: https://github.com/apache/servicecomb-docs/pull/319/files