You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@rocketmq.apache.org by "Zhanhui Li (JIRA)" <ji...@apache.org> on 2017/03/13 15:35:41 UTC

[jira] [Created] (ROCKETMQ-141) Make producers establish connection eagerly to new joined brokers

Zhanhui Li created ROCKETMQ-141:
-----------------------------------

             Summary: Make producers establish connection eagerly to new joined brokers
                 Key: ROCKETMQ-141
                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-141
             Project: Apache RocketMQ
          Issue Type: Improvement
          Components: rocketmq-client
    Affects Versions: 4.1.0-incubating
            Reporter: Zhanhui Li
            Assignee: Zhanhui Li


When new brokers joins the cluster, MQ producer clients polls name server and add the new-joined brokers to topicPublishInfo in case the new-joined broker bears the topic. Later on, the producers may send messages to the new-joined brokers.

This achieves part of scalable goals and works fine for most cases. However, we ran an issue in this process. The problem is when new broker joins the cluster, the producer clients blocks for quite a while even if when asynchronous send method is employed, which is very miserable for latency sensitive scenarios.  

After analyzing the root cause, it turns out that producer clients need to establish a connection to the new-joined brokers the first time it sends a message, as is blocking. 

This issue is to establish a connection to new-joined brokers immediately after polling name server and make them available to send methods thereafter. Thus, when send is called against new-joined brokers, there is a writable channel readily available.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)