【发布时间】:2020-05-18 08:25:52
【问题描述】:
我想知道是否有办法使用 spring-cloud-stream-binder-kafka 启用 Stateful RetryTemplate。
我注意到有一个构造函数
RetryingMessageListenerAdapter(MessageListener<K, V> messageListener, RetryTemplate retryTemplate, RecoveryCallback<? extends Object> recoveryCallback, boolean stateful)
通过这段代码调试,我注意到布尔值 false 使用 spring-cloud-stream-binder-kafka 传递到 stateful 参数中。
相关链接:KafkaMessageDrivenChannelAdapter.java、RetryingMessageListenerAdapter.java
我有几个关于这个话题的问题。
- 有没有办法通过application.yml或
ListenerContainerCustomizer将RetryingMessageListenerAdapter的成员stateful设置为真? - 有没有办法使用 spring-cloud-stream-binder-kafka 禁用
RetryTemplate?我认为我发现的最接近的是在我的@StreamRetryTemplate中将max-attempts覆盖为1。 - 如果我使用 spring-kafka 提供的
SeekToCurrentErrorHandler,有什么好处或理由我应该将stateful设置为true,因为SeekToCurrentErrorHandler已经是一个有状态的错误处理机制?
请告诉我。
【问题讨论】:
标签: spring-boot spring-kafka spring-cloud-stream spring-retry spring-cloud-stream-binder-kafka