springcloud stream延迟队列设置
- 2021-02-05 16:48:00
- admin 原创
- 400
springcloud stream延迟队列设置
配置文件修改:
spring.application.name=stream-exception-handler-2 server.port=8080 spring.cloud.stream.bindings.example-topic-input.destination=test-topic spring.cloud.stream.bindings.example-topic-input.group=stream-exception-handler spring.cloud.stream.bindings.example-topic-input.consumer.max-attempts=1 spring.cloud.stream.rabbit.bindings.example-topic-input.consumer.auto-bind-dlq=true spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest spring.cloud.stream.bindings.example-topic-output.destination=test-topi代码如下:
@RestController static class TestController { @Autowired private TestTopic testTopic; /** * 消息生产接口 * * @param message * @return */ @GetMapping("/sendMessage") public String messageWithMQ(@RequestParam String message) { testTopic.output().send(MessageBuilder.withPayload(message).build()); return "ok"; } } /** * 消息消费逻辑 */ @Slf4j @Component static class TestListener { @StreamListener(TestTopic.INPUT) public void receive(String payload) { log.info("Received payload : " + payload); throw new RuntimeException("Message consumer failed!"); } /** * 消息消费失败的降级处理逻辑 * * @param message */ @ServiceActivator(inputChannel = "test-topic.stream-exception-handler.errors") public void error(Message<?> message) { log.info("Message consumer failed, call fallback!"); } } interface TestTopic { String OUTPUT = "example-topic-output"; String INPUT = "example-topic-input"; @Output(OUTPUT) MessageChannel output(); @Input(INPUT) SubscribableChannel input(); }备注如果用到死信队列,消费异常不能在处理,如果处理就会出现进入不了死信队列的情况
发表评论
文章分类
联系方式
联系人: | 郑州-小万 |
---|---|
电话: | 13803993919 |
Email: | 1027060531@qq.com |
QQ: | 1027060531 |
网址: | www.wanhejia.com |
Update Required
To play the media you will need to either update your browser to a recent version or update your Flash plugin.