将 Kinesis 客户端库 v2.x 与 DynamoDB Stream Kinesis Adapter 结合使用

dip*_*nda 5 java amazon-kcl amazon-dynamodb-streams

我正在构建一个 Java 应用程序来使用 KCL 库使用来自 DynamoDB 流的事件。

AWS 文档上示例使用此库:

com.amazonaws:dynamodb-streams-kinesis-adapter:1.4.0
Run Code Online (Sandbox Code Playgroud)

这取决于:

com.amazonaws:amazon-kinesis-client:1.9.0
Run Code Online (Sandbox Code Playgroud)

但是,在 KCL repo 上,已经有 KCL 的 v2.2.0,具有不同的组 ID:

software.amazon.kinesis:amazon-kinesis-client:2.2.0
Run Code Online (Sandbox Code Playgroud)

有没有办法将较新的 KCL 与 DynamoDB Stream 适配器一起使用?

Nav*_*d H 0

亚马逊有 2 个有效的 KCL 版本。版本 1 和 2。根据变更数据捕获的流选项表,DynamoDB 流目前似乎仅与 KCL 版本 1 兼容。但是,如果需要使用 KCL 版本 2,则可以使用 Kinesis Stream 选项并通过 Kinesis Stream 捕获 dynamoDB 更改。总的来说,Kinesis Stream 似乎更强大、更灵活。但 DynamoDB Stream 相对于 Kinesis Stream 的一个优势是,事件按照发生的顺序接收,并且不存在重复事件,但使用 Kinesis Stream 时,无法保证事件顺序,并且可能存在重复事件。