You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by do...@apache.org on 2021/11/09 06:53:54 UTC

[rocketmq] 01/02: Add some notes, and revert the id map, set the globalId first

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

dongeforever pushed a commit to branch 5.0.0-alpha-static-topic
in repository https://gitbox.apache.org/repos/asf/rocketmq.git

commit a64ad01020e77b22bef18d5e240cb99df18170d4
Author: dongeforever <do...@apache.org>
AuthorDate: Mon Nov 8 11:08:31 2021 +0800

    Add some notes, and revert the id map, set the globalId first
---
 .../main/java/org/apache/rocketmq/common/TopicQueueMappingDetail.java | 4 ++--
 .../main/java/org/apache/rocketmq/common/TopicQueueMappingInfo.java   | 4 ++--
 .../org/apache/rocketmq/common/protocol/route/TopicRouteData.java     | 3 ++-
 .../java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java  | 2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingDetail.java b/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingDetail.java
index a90ca7e..d3e3d92 100644
--- a/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingDetail.java
+++ b/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingDetail.java
@@ -63,13 +63,13 @@ public class TopicQueueMappingDetail extends TopicQueueMappingInfo {
                     && items.size() >= 1) {
                 LogicQueueMappingItem curr = items.get(items.size() - 1);
                 if (bname.equals(curr.getBname())) {
-                    tmpIdMap.put(curr.getQueueId(), globalId);
+                    tmpIdMap.put(globalId, curr.getQueueId());
                 }
             } else if (level == LEVEL_1
                     && items.size() >= 2) {
                 LogicQueueMappingItem prev = items.get(items.size() - 1);
                 if (bname.equals(prev.getBname())) {
-                    tmpIdMap.put(prev.getQueueId(), globalId);
+                    tmpIdMap.put(globalId, prev.getQueueId());
                 }
             }
         }
diff --git a/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingInfo.java b/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingInfo.java
index c5bbeef..2d76365 100644
--- a/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingInfo.java
+++ b/common/src/main/java/org/apache/rocketmq/common/TopicQueueMappingInfo.java
@@ -29,9 +29,9 @@ public class TopicQueueMappingInfo extends RemotingSerializable {
     int totalQueues;
     String bname;  //identify the hosted broker name
     //register to broker to construct the route
-    ConcurrentMap<Integer, Integer> currIdMap = new ConcurrentHashMap<Integer, Integer>();
+    ConcurrentMap<Integer/*logicId*/, Integer/*physicalId*/> currIdMap = new ConcurrentHashMap<Integer, Integer>();
     //register to broker to help detect remapping failure
-    protected ConcurrentMap<Integer, Integer> prevIdMap = new ConcurrentHashMap<Integer, Integer>();
+    ConcurrentMap<Integer/*logicId*/, Integer/*physicalId*/> prevIdMap = new ConcurrentHashMap<Integer, Integer>();
 
     public TopicQueueMappingInfo(String topic, int totalQueues, String bname) {
         this.topic = topic;
diff --git a/common/src/main/java/org/apache/rocketmq/common/protocol/route/TopicRouteData.java b/common/src/main/java/org/apache/rocketmq/common/protocol/route/TopicRouteData.java
index c2cad6c..2ce6a53 100644
--- a/common/src/main/java/org/apache/rocketmq/common/protocol/route/TopicRouteData.java
+++ b/common/src/main/java/org/apache/rocketmq/common/protocol/route/TopicRouteData.java
@@ -33,7 +33,8 @@ public class TopicRouteData extends RemotingSerializable {
     private List<QueueData> queueDatas;
     private List<BrokerData> brokerDatas;
     private HashMap<String/* brokerAddr */, List<String>/* Filter Server */> filterServerTable;
-    private Map<String, TopicQueueMappingInfo> topicQueueMappingByBroker;
+    //It could be null or empty
+    private Map<String/*brokerName*/, TopicQueueMappingInfo> topicQueueMappingByBroker;
 
     public TopicRouteData() {
     }
diff --git a/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java b/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java
index bfdf53c..90bc197 100644
--- a/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java
+++ b/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java
@@ -163,7 +163,7 @@ public class RouteInfoManager {
                         TopicConfigAndMappingSerializeWrapper mappingSerializeWrapper = TopicConfigAndMappingSerializeWrapper.from(topicConfigWrapper);
 
                         Map<String, TopicQueueMappingInfo> topicQueueMappingInfoMap = mappingSerializeWrapper.getTopicQueueMappingInfoMap();
-
+                        //the topicQueueMappingInfoMap should never be null, but can be empty
                         for (Map.Entry<String, TopicQueueMappingInfo> entry : topicQueueMappingInfoMap.entrySet()) {
                             if (!topicQueueMappingInfoTable.containsKey(entry.getKey())) {
                                 topicQueueMappingInfoTable.put(entry.getKey(), new HashMap<String, TopicQueueMappingInfo>());