diff --git a/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvoker.java b/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvoker.java index 6cf91ea7e1..e3a4c01e9f 100644 --- a/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvoker.java +++ b/dubbo-rpc-default/src/main/java/com/alibaba/dubbo/rpc/protocol/dubbo/DubboInvoker.java @@ -103,13 +103,10 @@ public class DubboInvoker extends AbstractInvoker { public boolean isAvailable() { if (!super.isAvailable()) return false; - if (clients.length ==1){ - return clients[0].isConnected(); - } else { - for (ExchangeClient client : clients){ - if (client.isConnected()){ - return true; - } + for (ExchangeClient client : clients){ + //cannot write == not Available ? + if (client.isConnected() && !client.hasAttribute(Constants.CHANNEL_CANNOTWRITE_KEY)){ + return true; } } return false;