From c6d4a6b89e77c22b0aa9da762d72c6f6fa21ab3b Mon Sep 17 00:00:00 2001 From: ruansheng Date: Sun, 16 Jul 2023 14:01:38 +0800 Subject: [PATCH 1/3] Fix RocketMQ pollable and sql example --- .../rocketmq-example/readme-zh.md | 11 ++++++ .../rocketmq-example/readme.md | 11 ++++++ .../RocketMQPollableConsumeApplication.java | 39 ++++++++++--------- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md b/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md index 16ae4d0265..84c4fbbbce 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md +++ b/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md @@ -681,6 +681,17 @@ public class RocketMQSqlConsumeApplication { } ``` +#### 常见问题 + +- MQClientException: The broker does not support consumer to filter message by SQL92 +1. 修改 RocketMQ 服务端配置文件。 +在 `conf/2m-2s-async/broker-a.properties` 配置文件末尾添加 `enablePropertyFilter=true` +2. 重启 mqbroker 并指定配置文件。 +`mqbroker`启动时指定配置文件: `conf/2m-2s-async/broker-a.properties`,例如: +```shell +bin/mqbroker -n 127.0.0.1:9876 -c conf/2m-2s-async/broker-a.properties autoCreateTopicEnable=true +``` + ## 事务消息示例 ### 什么是事务消息? diff --git a/spring-cloud-alibaba-examples/rocketmq-example/readme.md b/spring-cloud-alibaba-examples/rocketmq-example/readme.md index 2b72fe03ea..23289656fb 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/readme.md +++ b/spring-cloud-alibaba-examples/rocketmq-example/readme.md @@ -675,6 +675,17 @@ public class RocketMQSqlConsumeApplication { } ``` +#### 常见问题 + +- MQClientException: The broker does not support consumer to filter message by SQL92 +1. Modify RocketMQ server configuration file. + In the `conf/2m-2s-async/broker-a.properties` configuration file, add `enablePropertyFilter=true` +2. Restart mqbroker and specify the configuration file. + Specify the configuration file when `mqbroker` starts: `conf/2m-2s-async/broker-a.properties`, for example: +```shell +bin/mqbroker -n 127.0.0.1:9876 -c conf/2m-2s-async/broker-a.properties autoCreateTopicEnable=true +``` + ## Transaction example ### What is transactional message? diff --git a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java index e03551ebbb..3e6837174c 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java +++ b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java @@ -25,11 +25,13 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.stream.binder.PollableMessageSource; import org.springframework.cloud.stream.function.StreamBridge; +import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.core.ParameterizedTypeReference; import org.springframework.messaging.Message; @@ -48,7 +50,24 @@ public class RocketMQPollableConsumeApplication { private StreamBridge streamBridge; public static void main(String[] args) { - SpringApplication.run(RocketMQPollableConsumeApplication.class, args); + ConfigurableApplicationContext context = SpringApplication.run(RocketMQPollableConsumeApplication.class, args); + PollableMessageSource destIn = context.getBean(PollableMessageSource.class); + new Thread(() -> { + while (true) { + try { + if (!destIn.poll((m) -> { + SimpleMsg newPayload = (SimpleMsg) m.getPayload(); + System.out.println(newPayload.getMsg()); + }, new ParameterizedTypeReference() { + })) { + Thread.sleep(1000); + } + } + catch (Exception e) { + // handle failure + } + } + }).start(); } @Bean @@ -65,22 +84,4 @@ public ApplicationRunner producer() { }; } - @Bean - public ApplicationRunner pollableRunner(PollableMessageSource destIn) { - return args -> { - while (true) { - try { - if (!destIn.poll((m) -> { - SimpleMsg newPayload = (SimpleMsg) m.getPayload(); - System.out.println(newPayload.getMsg()); - }, new ParameterizedTypeReference() { })) { - Thread.sleep(1000); - } - } - catch (Exception e) { - // handle failure - } - } - }; - } } From 812f07ad578ce60585ad5c47ffca666a77ef8789 Mon Sep 17 00:00:00 2001 From: ruansheng Date: Sun, 16 Jul 2023 14:13:51 +0800 Subject: [PATCH 2/3] Fix example doc indent --- spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md | 2 +- spring-cloud-alibaba-examples/rocketmq-example/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md b/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md index 84c4fbbbce..8fc819010a 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md +++ b/spring-cloud-alibaba-examples/rocketmq-example/readme-zh.md @@ -687,7 +687,7 @@ public class RocketMQSqlConsumeApplication { 1. 修改 RocketMQ 服务端配置文件。 在 `conf/2m-2s-async/broker-a.properties` 配置文件末尾添加 `enablePropertyFilter=true` 2. 重启 mqbroker 并指定配置文件。 -`mqbroker`启动时指定配置文件: `conf/2m-2s-async/broker-a.properties`,例如: +`mqbroker` 启动时指定配置文件:`conf/2m-2s-async/broker-a.properties`,例如: ```shell bin/mqbroker -n 127.0.0.1:9876 -c conf/2m-2s-async/broker-a.properties autoCreateTopicEnable=true ``` diff --git a/spring-cloud-alibaba-examples/rocketmq-example/readme.md b/spring-cloud-alibaba-examples/rocketmq-example/readme.md index 23289656fb..7540041f26 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/readme.md +++ b/spring-cloud-alibaba-examples/rocketmq-example/readme.md @@ -679,7 +679,7 @@ public class RocketMQSqlConsumeApplication { - MQClientException: The broker does not support consumer to filter message by SQL92 1. Modify RocketMQ server configuration file. - In the `conf/2m-2s-async/broker-a.properties` configuration file, add `enablePropertyFilter=true` + In the `conf/2m-2s-async/broker-a.properties` configuration file, add `enablePropertyFilter=true`. 2. Restart mqbroker and specify the configuration file. Specify the configuration file when `mqbroker` starts: `conf/2m-2s-async/broker-a.properties`, for example: ```shell From 5018e2c0085de601543aaafb236d4628f8347d85 Mon Sep 17 00:00:00 2001 From: ruansheng Date: Sun, 16 Jul 2023 14:15:31 +0800 Subject: [PATCH 3/3] Fix checkStyle --- .../examples/pollable/RocketMQPollableConsumeApplication.java | 1 - 1 file changed, 1 deletion(-) diff --git a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java index 3e6837174c..51cadb5e89 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java +++ b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java/com/alibaba/cloud/examples/pollable/RocketMQPollableConsumeApplication.java @@ -25,7 +25,6 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;