You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by zh...@apache.org on 2023/03/13 06:19:30 UTC

[rocketmq] branch develop updated: [ISSUE #6272]Add judgment for SendLatencyFault in MQFaultStrategy#selectOneMessageQueue (#6273)

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

zhouxzhan pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 47355d115 [ISSUE #6272]Add judgment for SendLatencyFault in MQFaultStrategy#selectOneMessageQueue (#6273)
47355d115 is described below

commit 47355d115d9c9569e3f9db6ce17f0a5610da1a2c
Author: mxsm <lj...@gmail.com>
AuthorDate: Mon Mar 13 14:19:08 2023 +0800

    [ISSUE #6272]Add judgment for SendLatencyFault in MQFaultStrategy#selectOneMessageQueue (#6273)
    
    * [ISSUE #6272]Add judgment for SendLatencyFault in MQFaultStrategy#selectOneMessageQueue
    
    * fix code style
---
 .../main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java b/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java
index bd0818688..e86238e55 100644
--- a/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java
+++ b/client/src/main/java/org/apache/rocketmq/client/latency/MQFaultStrategy.java
@@ -17,6 +17,7 @@
 
 package org.apache.rocketmq.client.latency;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.rocketmq.client.impl.producer.TopicPublishInfo;
 import org.apache.rocketmq.common.message.MessageQueue;
 import org.apache.rocketmq.logging.org.slf4j.Logger;
@@ -62,8 +63,9 @@ public class MQFaultStrategy {
                 for (int i = 0; i < tpInfo.getMessageQueueList().size(); i++) {
                     int pos = index++ % tpInfo.getMessageQueueList().size();
                     MessageQueue mq = tpInfo.getMessageQueueList().get(pos);
-                    if (latencyFaultTolerance.isAvailable(mq.getBrokerName()))
+                    if (!StringUtils.equals(lastBrokerName, mq.getBrokerName()) && latencyFaultTolerance.isAvailable(mq.getBrokerName())) {
                         return mq;
+                    }
                 }
 
                 final String notBestBroker = latencyFaultTolerance.pickOneAtLeast();