You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by ji...@apache.org on 2021/08/26 04:32:35 UTC

[rocketmq-spring] branch master updated: [ISSUE #385]Add message trace setting in ExtRocketMQConsumerConfiguration. (#386)

This is an automated email from the ASF dual-hosted git repository.

jinrongtong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-spring.git


The following commit(s) were added to refs/heads/master by this push:
     new 327ef13  [ISSUE #385]Add message trace setting in ExtRocketMQConsumerConfiguration. (#386)
327ef13 is described below

commit 327ef13383eccef34de0c41ed3e5f48aada21ef3
Author: zhangjidi2016 <zh...@cmss.chinamobile.com>
AuthorDate: Thu Aug 26 12:32:07 2021 +0800

    [ISSUE #385]Add message trace setting in ExtRocketMQConsumerConfiguration. (#386)
    
    Co-authored-by: zhangjidi2016 <zh...@cmss.chinamobile.com>
---
 .../ExtRocketMQConsumerConfiguration.java          | 11 +++++++++
 .../ExtConsumerResetConfiguration.java             |  3 ++-
 .../autoconfigure/RocketMQAutoConfiguration.java   |  2 ++
 .../spring/autoconfigure/RocketMQProperties.java   | 26 ++++++++++++++++++++++
 4 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/ExtRocketMQConsumerConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/ExtRocketMQConsumerConfiguration.java
index 63e4e37..8529d24 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/ExtRocketMQConsumerConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/annotation/ExtRocketMQConsumerConfiguration.java
@@ -37,6 +37,7 @@ public @interface ExtRocketMQConsumerConfiguration {
     String ACCESS_CHANNEL_PLACEHOLDER = "${rocketmq.access-channel:}";
     String ACCESS_KEY_PLACEHOLDER = "${rocketmq.consumer.access-key:}";
     String SECRET_KEY_PLACEHOLDER = "${rocketmq.consumer.secret-key:}";
+    String TRACE_TOPIC_PLACEHOLDER = "${rocketmq.consumer.customized-trace-topic:}";
 
     /**
      * The component name of the Producer configuration.
@@ -94,4 +95,14 @@ public @interface ExtRocketMQConsumerConfiguration {
      * Maximum number of messages pulled each time.
      */
     int pullBatchSize() default 10;
+
+    /**
+     * Switch flag instance for message trace.
+     */
+    boolean enableMsgTrace() default false;
+
+    /**
+     * The name value of message trace topic.If you don't config,you can use the default trace topic name.
+     */
+    String customizedTraceTopic() default TRACE_TOPIC_PLACEHOLDER;
 }
\ No newline at end of file
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtConsumerResetConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtConsumerResetConfiguration.java
index 1726392..dc8a039 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtConsumerResetConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtConsumerResetConfiguration.java
@@ -126,9 +126,10 @@ public class ExtConsumerResetConfiguration implements ApplicationContextAware, S
         String ak = resolvePlaceholders(annotation.accessKey(), consumerConfig.getAccessKey());
         String sk = resolvePlaceholders(annotation.secretKey(), consumerConfig.getSecretKey());
         int pullBatchSize = annotation.pullBatchSize();
-
         DefaultLitePullConsumer litePullConsumer = RocketMQUtil.createDefaultLitePullConsumer(nameServer, accessChannel,
                 groupName, topicName, messageModel, selectorType, selectorExpression, ak, sk, pullBatchSize);
+        litePullConsumer.setEnableMsgTrace(annotation.enableMsgTrace());
+        litePullConsumer.setCustomizedTraceTopic(resolvePlaceholders(annotation.customizedTraceTopic(), consumerConfig.getCustomizedTraceTopic()));
         return litePullConsumer;
     }
 
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
index b9ec643..41dc8a8 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
@@ -142,6 +142,8 @@ public class RocketMQAutoConfiguration implements ApplicationContextAware {
 
         DefaultLitePullConsumer litePullConsumer = RocketMQUtil.createDefaultLitePullConsumer(nameServer, accessChannel,
                 groupName, topicName, messageModel, selectorType, selectorExpression, ak, sk, pullBatchSize);
+        litePullConsumer.setEnableMsgTrace(consumerConfig.isEnableMsgTrace());
+        litePullConsumer.setCustomizedTraceTopic(consumerConfig.getCustomizedTraceTopic());
         return litePullConsumer;
     }
 
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQProperties.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQProperties.java
index 015a02d..4337ff3 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQProperties.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQProperties.java
@@ -272,6 +272,16 @@ public class RocketMQProperties {
         private int pullBatchSize = 10;
 
         /**
+         * Switch flag instance for message trace.
+         */
+        private boolean enableMsgTrace = false;
+
+        /**
+         * The name value of message trace topic.If you don't config,you can use the default trace topic name.
+         */
+        private String customizedTraceTopic = TopicValidator.RMQ_SYS_TRACE_TOPIC;
+
+        /**
          * listener configuration container
          * the pattern is like this:
          * group1.topic1 = false
@@ -351,6 +361,22 @@ public class RocketMQProperties {
         public void setListeners(Map<String, Map<String, Boolean>> listeners) {
             this.listeners = listeners;
         }
+
+        public boolean isEnableMsgTrace() {
+            return enableMsgTrace;
+        }
+
+        public void setEnableMsgTrace(boolean enableMsgTrace) {
+            this.enableMsgTrace = enableMsgTrace;
+        }
+
+        public String getCustomizedTraceTopic() {
+            return customizedTraceTopic;
+        }
+
+        public void setCustomizedTraceTopic(String customizedTraceTopic) {
+            this.customizedTraceTopic = customizedTraceTopic;
+        }
     }
 
 }