我正在使用Kinesis Firehose的Java API,并尽可能利用putRecordBatch()。但是,在我的应用程序中,我偶尔只会发送一条记录而无法等待更多记录或将其缓存在内存中。
但是,我的代码比我希望的要复杂一点,因为我正在跟踪每个操作的成功/失败计数。 putRecordBatch返回一个int,表示发送的记录集中失败的提交数量,例如: 2次失败,而putRecord()要么成功要么抛出异常。
我更喜欢在任何地方使用putRecordBatch(),但是如果您要提交多条记录,则说文档只会使用它。
这可能有点远,但是这里的任何人都有使用此API的经验,特别是这些方法吗?你有没有做过我正在考虑的事情,只是在任何地方使用putRecordBatch(),即使记录集为1?
答案 0 :(得分:0)
我已经准确设置了你所描述的内容:通常发送批量调用的情况,但偶尔只会使用putRecordBatch()发送一条记录。根据我对文档的理解,似乎他们只是澄清如果你只想发送一条记录,你应该使用putRecord,而不是实际强制执行。从性能优势我看到只使用putRecordBatch() - 顺便说一句,如果你需要发送1条记录就可以正常工作 - 我相信你应该可以使用putRecordBatch()来提交所有提交。