我目前正在使用以下方法https://docs.spring.io/spring-cloud-gcp/docs/1.2.4.BUILD-SNAPSHOT/reference/html/#spring-integration集成PubSub
基本上,我订阅了一个主题,我收到消息并对其做一些事情。
我想,在我的业务规则出现任何错误的情况下(比如因为X,Y,Z原因而不接受消息),将其发送到dlq。
我看到就在一个半月前,谷歌推出了PubSub的DLQ:https://cloud.google.com/pubsub/docs/dead-letter-topics
但我不确定将其与spring集成方法集成的正确方式应该是什么。
发布于 2020-07-22 01:24:28
内置的DLQ支持将自动工作-您所要做的就是打开Dead setting (通过云控制台中的添加/编辑订阅屏幕),将"Maximum delivery attempts“字段设置为尝试次数。在您的应用程序nack()这一次消息后,云发布/订阅会将其重定向到您设置为DLQ的主题。
内置的支持对于导致消息传递失败的环境、可重试的原因非常有效。但是,在将消息发送到DLQ之前,它至少有5次重试。在业务规则验证的情况下,您可能更喜欢使用自定义主题和Spring Integration重定向来模拟DLQ,因为在尝试#1失败之后,消息不会突然变得有效,其余的尝试#2 - #5都是浪费资源。
要模拟在单个失败后重定向的DLQ,您可以创建一个新主题,我们将其命名为validation-dlq,将其连接为Spring Integration通道,对每条消息运行自定义验证检查,如果消息失败,则在源订阅上ack()原始消息,并将消息发布到validation-dlq主题。
https://stackoverflow.com/questions/63006446
复制相似问题