javaB2B2C原始碼springmvcmybatis多租戶電子商城系統-Stream重新入隊(RabbitMQ)
本文將介紹RabbitMQ的binder提供的重試功能:重新入隊
準備一個會消費失敗的例子,可以直接沿用前文的工程,也可以新建一個,然後建立如下程式碼的邏輯:
@EnableBinding(TestApplication.TestTopic.class)
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
@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 {
private int count = 1;
@StreamListener(TestTopic.INPUT)
public void receive(String payload) {
log.info("Received payload : " + payload + ", " + count);
throw new RuntimeException("Message consumer failed!");
}
}
interface TestTopic {
String OUTPUT = "example-topic-output";
String INPUT = "example-topic-input";
@Output(OUTPUT)
MessageChannel output();
@Input(INPUT)
SubscribableChannel input();
}
}
內容很簡單,既包含了訊息的生產,也包含了訊息消費。訊息消費的時候主動丟擲了一個異常來模擬訊息的消費失敗。
在啟動應用之前,還要記得配置一下輸入輸出通道對應的物理目標(exchange或topic名)、並設定一下分組,比如:
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.requeue-rejected=true
spring.cloud.stream.bindings.example-topic-output.destination=test-topic
完成了上面配置之後,啟動應用並訪問localhost:8080/sendMessage?message=hello介面來傳送一個訊息到MQ中了,此時可以看到程式不斷的丟擲了訊息消費異常。這是由於這裡我們多加了一個配置:spring.cloud.stream.rabbit.bindings.example-topic-input.consumer.requeue-rejected=true。在該配置作用之下,訊息消費失敗之後,並不會將該訊息拋棄,而是將訊息重新放入佇列,所以訊息的消費邏輯會被重複執行,直到這條訊息消費成功為止。
相關文章
- java B2B2C 原始碼多租戶電子商城系統-熔斷器HystrixJava原始碼
- java B2B2C 多租戶電子商城系統Java
- java B2B2C 原始碼多租戶電子商城系統-Spring Cloud元件詳解Java原始碼SpringCloud元件
- java B2B2C 原始碼多租戶電子商城系統-Kafka基本使用介紹Java原始碼Kafka
- java B2B2C Springboot多租戶電子商城系統JavaSpring Boot
- 多租戶商城系統解說
- java B2B2C Springboot多租戶電子商城系統-Spring Cloud Stream(訊息驅動)JavaSpring BootCloud
- java B2B2C 原始碼 多級分銷Springcloud多租戶電子商城系統-KAFKA介紹Java原始碼SpringGCCloudKafka
- java B2B2C 原始碼多租戶電子商城系統-Spring Cloud整合Netflix Archaius介紹Java原始碼SpringCloudAI
- java B2B2C 原始碼 多級分銷springmvc mybatis多租戶電子商城系統-註冊中心EurekaJava原始碼SpringMVCMyBatis
- java B2B2C Springcloud多租戶電子商城系統- Stream 構建訊息驅動微服務JavaSpringGCCloud微服務
- java B2B2C 多租戶電子商城系統-SpringCloud動態重新整理配置資訊JavaSpringGCCloud
- java B2B2C 多租戶電子商城系統-Spring Cloud ZipkinJavaSpringCloud
- 多租戶SaaS商城原始碼有哪些功能點?原始碼
- java B2B2C springmvc mybatis多租戶電子商城系統-gateway 限流JavaSpringMVCMyBatisGateway
- java B2B2C 多租戶電子商城系統-spring-cloud-configJavaSpringCloud
- java B2B2C Springboot多租戶電子商城系統-Consul 介紹JavaSpring Boot
- java B2B2C Springcloud多租戶電子商城系統-Spring Cloud SleuthJavaSpringGCCloud
- java B2B2C 原始碼 多級分銷springmvc mybatis多租戶電子商城系統---服務閘道器zuulJava原始碼SpringMVCMyBatisZuul
- javab2b2c開源商城系統原始碼Java原始碼
- java B2B2C Springboot多租戶電子商城系統- gateway之filter篇JavaSpring BootGatewayFilter
- java B2B2C Springcloud多租戶電子商城系統- Gateway 之Predict篇JavaSpringGCCloudGateway
- java B2B2C Springcloud多租戶電子商城系統-spring-cloud-eurekaJavaSpringGCCloud
- java B2B2C springmvc mybatis多租戶電子商城系統-Spring Cloud RibbonJavaSpringMVCMyBatisCloud
- java B2B2C springmvc mybatis多租戶電子商城系統-Spring Cloud FeignJavaSpringMVCMyBatisCloud
- java B2B2C 多級分銷多租戶電子商城系統-單點登入(SSO)簡介Java
- 多商戶商城開發(功能)丨多商戶商城系統開發(開發方案)丨多商戶商城成品原始碼系統原始碼
- java B2B2C 原始碼 多級分銷springmvc mybatis多租戶電子商城系統--配置中心服務化和高可用Java原始碼SpringMVCMyBatis
- java B2B2C springmvc mybatis多租戶電子商城系統--Zuul的高可用JavaSpringMVCMyBatisZuul
- java B2B2C Springcloud多租戶電子商城系統-整合專案簡介JavaSpringGCCloud
- java B2B2C Springboot多租戶電子商城系統-spring-cloud-eureka-consumerJavaSpring BootCloud
- java B2B2C 多租戶電子商城系統- 整合企業架構的技術點Java架構
- java B2B2C Springcloud多租戶電子商城系統-高可用的服務註冊中心JavaSpringGCCloud
- java B2B2C springmvc mybatis多租戶電子商城系統-服務閘道器過濾器JavaSpringMVCMyBatis過濾器
- java B2B2C 多租戶電子商城系統-Spring Cloud常見問題與總結(三)JavaSpringCloud
- B2B2C多租戶商城系統解決方案
- 多商戶商城系統定製(平臺開發)原始碼案例原始碼
- 多商戶商城小程式如何操作運營?電商系統原始碼發展趨勢原始碼