[ 
https://issues.apache.org/jira/browse/ROCKETMQ-184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16250801#comment-16250801
 ] 

ASF GitHub Bot commented on ROCKETMQ-184:
-----------------------------------------

Jaskey commented on issue #95: [ROCKETMQ-184]-It takes too long(3-33 seconds) 
to switch to read from slave when master crashes
URL: https://github.com/apache/rocketmq/pull/95#issuecomment-344140091
 
 
   This pr is not updated from the source for long, so I updated just now , 
please review.
   
   I think this is a good improvement for HA.
   
   @zhouxinyu @vongosling @shroman @dongeforever 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> It takes too long(3-33 seconds) to switch to read from slave when master 
> crashes
> --------------------------------------------------------------------------------
>
>                 Key: ROCKETMQ-184
>                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-184
>             Project: Apache RocketMQ
>          Issue Type: Improvement
>          Components: rocketmq-client, rocketmq-remoting
>            Reporter: Jaskey Lam
>            Assignee: Xiaorui Wang
>             Fix For: 4.2.0
>
>
> When master crashes, no notifier callback is triggered to pull message again.
> Instead, it relies on the scan service to trigger timeout and then re pull.
> But the pulling command has 30 seconds timeout, and after timeout, pulling 
> operation will be scheduled after 3 seconds.
> So it takes 3 to 33 seconds to switch to slave, which is too long and can be 
> optimized.
> The root cause is the below repull cost too long to be triggered when master 
> crashes
> {code}
>             @Override
>             public void onException(Throwable e) {
>                 if 
> (!pullRequest.getMessageQueue().getTopic().startsWith(MixAll.RETRY_GROUP_TOPIC_PREFIX))
>  {
>                     log.warn("execute the pull request exception", e);
>                 }
>                 
> DefaultMQPushConsumerImpl.this.executePullRequestLater(pullRequest, 
> PULL_TIME_DELAY_MILLS_WHEN_EXCEPTION);
>             }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to