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)

Reply via email to