0

如果我为 Samza 中的 RocksDB 表指定更改日志支持。是否有配置将异步写入时间更新到更改日志?我想把它缩短到更短的时间。我在Config 参考中看不到任何内容。

我想要的场景是在桥接旧 JMS 连接后从流中写入更改日志。这个遗留连接提供了部分更新,我想将部分更新合并到更完整的消息中,在 samza 流应用程序中构建这些消息的缓存,并将它们写到更改日志中。

如果我使用配置的变更日志,stores.store-name.changelog那么它将写入变更日志,最终我对 Samze API 表所做的更改。但对我的需求不够快,所以想配置最大等待时间以传播到变更日志。

或者,似乎withSideInputs每次都使用引导我的表,然后使用sendTo会更快地更新,我也可以保持LocalStore读写缓存,并且始终将更改日志作为黄金来源。

我希望更改日志也能快速写入的原因是因为其他应用程序正在从该更改日志中读取。

4

1 回答 1

0

是的,您可以在配置中配置将更改提交到更改日志的时间:

task.commit.ms

文档

然后,当提交发生时,对存储的写入将被刷新:

profileTable.put(message.key, message.value) 

在此提交毫秒配置之前,有关此较高输入量的注释似乎会导致更改日志主题的更改。还要注意不要放得太低,因为随着音量的增加,整体速度会变慢。

您还可以使用低级 API 来提交 TaskCoordinator 提供的提交API 以手动提交的特定流任务。

于 2020-12-13T16:44:46.560 回答