【问题标题】:Kinesis Firehose putRecord vs putRecordBatchKinesis Firehose putRecord 与 putRecordBatch
【发布时间】:2017-05-08 16:16:42
【问题描述】:

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

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

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

这可能有点远,但是这里有没有人有使用这个 API 的经验,特别是这些方法?你有没有做我正在考虑的事情,只是到处使用 putRecordBatch(),即使记录集为 1?

【问题讨论】:

    标签: amazon-kinesis-firehose


    【解决方案1】:

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

    【讨论】:

    • 感谢@dizzyf,这就是我的假设,但如果我有足够的时间,我想以合理的规模对此进行测试,以确保始终使用 putRecordBatch 没有负面影响。对于我的用例,我通常一次发送一条记录,偶尔发送一批记录。我估计我的应用程序在
    • @matthewcummings516 对此进行跟进:FWIW,我们上个月一直在运行 putRecordBatch()+,没有任何负面影响。没有错误,性能仍然一流。
    猜你喜欢
    • 2017-07-21
    • 2018-06-17
    • 2021-07-31
    • 2019-11-05
    • 2020-05-22
    • 2021-07-04
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多