Spring Cloud Stream GCP如何重新排队失败的消息

时间:2019-03-04 08:24:37

标签: spring-boot spring-cloud spring-cloud-stream spring-messaging

根据文档here,当前受支持的活页夹(兔子和Kafka )依赖RetryTemplate。对于 GCP

我的项目的详细信息

Spring Boot版本2.1.3发行版

依赖项pom.xml

___________*#
__________*_*#
_________*___*#
________*_____*#
_______*_______*#
______*_________*#
_____*___________*#
____*_____________*#
___*_______________*#
__*_________________*#
_*___________________*#
***********************#

application.properties

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-gcp-starter-pubsub</artifactId>
    <version>1.1.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-gcp-pubsub-stream-binder</artifactId>
    <version>1.1.0.RELEASE</version>
</dependency>

RestController

spring.cloud.stream.bindings.input.destination=inputtopic
spring.cloud.stream.bindings.output.destination=outputtopic

spring.cloud.gcp.project-id=testinggcp
spring.cloud.gcp.credentials.location=file:C:/Users/my_gcp_credentials.json

1 个答案:

答案 0 :(得分:0)

否,Spring Cloud GCP Pub / Sub Binder不提供任何重试挂钩。

很容易在RequestHandlerRetryAdvice上使用@ServiceActivator而不是@StreamListener。因此,将根据您的配置重试POJO方法中的所有失败。 RequestHandlerRetryAdvice有一个RecoveryCallback选项,可能只是简单的ErrorMessageSendingRecoverer,您可以在其中配置一些错误处理并将错误消息发送到GCP发布/订阅上的某些死信主题。

请参阅参考手册中的更多信息:https://docs.spring.io/spring-integration/docs/current/reference/html/#retry-advice

还有关于Advising Endpoints Using Annotations的吼叫。