0

我正在使用 Spring Cloud Stream 从 Google Pub/Sub 主题发送和接收消息,并且对发布有疑问。如果我有一个 @Output MessageChanel 并且我调用 channel.send(message) 并且调用正常返回(没有异常),我是否保证 Pub/Sub 现在有消息?我正在寻找类似于 JMS 系统中的“持久”消息保证的东西。

我似乎记得有可以为发布配置的批处理参数和/或异步设置,我还想知道这一切如何影响担保人(如果有的话)。这些似乎会使通过 channel.send 发送单个消息的任何保证复杂化。

谢谢。

4

1 回答 1

1

您是正确的,默认情况下 Cloud Pub/Sub 的 Spring 集成是异步发布的。在 Spring 集成级别,您可以使用PubSubMessageHandler.setSync(boolean)setter 控制同步/异步切换。在那个级别,也可以在异步模式下设置发布回调。不幸的是,目前无法从 Spring Cloud Stream 集成中更改此标志。

我有一个 PR 来添加第一个功能(关闭异步)- https://github.com/spring-cloud/spring-cloud-gcp/pull/2473

于 2020-07-22T19:00:20.637 回答