[GitHub] incubator-rocketmq pull request #95: [ROCKETMQ-184]-It takes too long(3-33 s...

2017-04-21 Thread lizhanhui
Github user lizhanhui commented on a diff in the pull request:

https://github.com/apache/incubator-rocketmq/pull/95#discussion_r112623142
  
--- Diff: 
remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRemotingAbstract.java
 ---
@@ -306,29 +307,35 @@ public void invokeAsyncImpl(final Channel channel, 
final RemotingCommand request
 if (acquired) {
 final SemaphoreReleaseOnlyOnce once = new 
SemaphoreReleaseOnlyOnce(this.semaphoreAsync);
 
-final ResponseFuture responseFuture = new 
ResponseFuture(opaque, timeoutMillis, invokeCallback, once);
+final GenericFutureListener chanelCloseListener 
= new ChannelFutureListener() {
--- End diff --

chanel-->channel


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] incubator-rocketmq pull request #95: [ROCKETMQ-184]-It takes too long(3-33 s...

2017-04-20 Thread Jaskey
GitHub user Jaskey opened a pull request:

https://github.com/apache/incubator-rocketmq/pull/95

[ROCKETMQ-184]-It takes too long(3-33 seconds) to switch to read from slave 
when master crashes


JIRA:https://issues.apache.org/jira/browse/ROCKETMQ-184?jql=project%20%3D%20ROCKETMQ

Problem, no listener is triggered when Chanel is close. 

When async command sent to the server, and the server is crash before 
sending response to client, the callback can not be invoked in time. Instead, 
the callback can only be triggered by the timeout scan service. 

This is obvious for pulling message since the timeout is by default 30 
seconds. So if master crashes before process response to the client, the client 
can not repull until scan service tell it, which takes at most 30 seconds. And 
repull will have 3 seconds delay, so the HA to read from slave has to take 3-33 
seconds when this problem occurs.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/Jaskey/incubator-rocketmq 
ROCKETMQ-184-slave-switch

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-rocketmq/pull/95.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #95


commit 0dc37e1c10450f143e58faa857f5bf8ccbee1ca3
Author: Jaskey 
Date:   2017-04-19T09:13:09Z

invoke callback when channel is close after  sending async command




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---