4

我正在为 Kinesis Firehose 使用 Java API,并尽可能利用 putRecordBatch()。但是,在我的应用程序中,我偶尔只发送一条记录,无法等待更多或将其缓存在内存中。

但是,我的代码比我想要的要复杂一些,因为我正在跟踪每个操作的成功/失败计数。putRecordBatch 返回一个 int 值,表示在发送的记录集中提交失败的次数,例如 4 次失败中的 2 次,而 putRecord() 要么成功,要么抛出异常。

我宁愿在任何地方都使用 putRecordBatch() 但文档说只有在您有多个记录要提交时才使用它。

这可能有点远,但是这里有没有人有这个 API 的经验,特别是这些方法?您是否已经完成了我正在考虑的事情并且只是在任何地方都使用了 putRecordBatch(),即使记录集为 1?

4

1 回答 1

0

我已经准确地设置了您所描述的内容:通常发送批量调用但偶尔只会使用 putRecordBatch() 发送一条记录的情况。根据我对文档的理解,他们似乎只是在澄清,如果您只想发送一条记录,则应该使用 putRecord,而不是实际强制执行。从我看到的只使用 putRecordBatch() 的性能优势来看——顺便说一下,如果你需要发送 1 条记录,它工作得很好——我相信你应该可以对所有提交使用 putRecordBatch()。

于 2017-01-04T23:10:42.483 回答