一个项目中有 2 个版本的 amazon-kinesis-client 库

问题描述 投票:0回答:1

我有一个项目使用“software.amazon.kinesis:amazon-kinesis-client:2.5.0”库相当长一段时间来消耗来自 kinesis 流的事件。 最近,我们开始使用“org.springframework.cloud:spring-cloud-stream-binder-kinesis:3.0.0”库,结果证明该库具有传递依赖关系,但在旧版本中,特别是“com.amazonaws” :amazon-kinesis-client:1.14.9".

因此,每当我们运行应用程序时,它都会停止消耗使用版本 2.5.0 的流中的事件 - 没有错误或异常,就像它完全跳过它一样。

我想知道上述问题是否是由库冲突引起的?在我看来,这很奇怪,因为它们来自不同的组:“software.amazon.kinesis”与“com.amazonaws”并且具有不同的 API。

我对这种情况有点困惑,因为在 2.5.0 版本中有很多使用 kinesis 客户端的旧代码,并且我们已经做了一些努力来开发使用“org.springframework.cloud:spring-cloud”的新代码-stream-binder-kinesis:3.0.0",并且确实没有时间重构它。 有谁对如何解决这种情况有任何建议,而不删除任何这些库?

谢谢

我们正在检查将“org.springframework.cloud:spring-cloud-stream-binder-kinesis”升级到版本4.0.0的可能性(内部使用“software.amazon.kinesis:amazon-kinesis-client:2.5.0” ”),但遗憾的是,它至少需要 Spring Boot 3.0 版本,而我们使用的是 2.7 版本。 我们还尝试强制“org.springframework.cloud:spring-cloud-stream-binder-kinesis”库使用版本 2.5.0,但正如我提到的 API 不同,它无法编译。

java spring-boot spring-cloud spring-cloud-stream amazon-kinesis
1个回答
0
投票

我正在处理一个有点类似的问题,我意识到最好的办法是重构所有旧代码以使用新的 2.x.x kinesis-client。 aws 有这方面的文档。希望能帮助到你! https://docs.aws.amazon.com/streams/latest/dev/kcl-migration.html

© www.soinside.com 2019 - 2024. All rights reserved.