1

Так, согласно этой странице: http://developer.couchbase.com/documentation/server/current/sdk/java/start-using-sdk.htmlCouchbase Client Java SDK не использует другой узел кластера при первой не отвечает

// Connects to a cluster on 10.0.0.1 and tries 10.0.0.2 
// if the other one does not respond during bootstrap. 
Cluster cluster = CouchbaseCluster.create("10.0.0.1", "10.0.0.2"); 

Кажется, прямо вперед, я открываю проект Maven в Eclipse. Используя новейший Java SDK для couchbase клиента:

<dependency> 
    <groupId>com.couchbase.client</groupId> 
    <artifactId>java-client</artifactId> 
    <version>2.3.4</version> 
</dependency> 

Моего код, короткий и сладкий:

import com.couchbase.client.java.Cluster; 
import com.couchbase.client.java.CouchbaseCluster; 

public class Main { 
    public static void main(String[] args){ 
     Cluster cluster = CouchbaseCluster.create("10.200.0.10", "10.200.0.11", "10.200.0.12"); 
     System.out.println(cluster.clusterManager("Administrator", "password").info().raw()); 
    } 
} 

Моего Couchbase кластер состоит из трех узлов на три виртуальных машинах. Развернуто с докером. Они отлично работают, и у меня есть другое приложение, использующее все замечательные функции в SDK, но я обнаружил, что что-то ломается, когда я делаю тестирование:

Если я запустил выше код в то время как узел 10.200.0.11 или/и узел 10.200. 0.12 вниз все хорошо. Я получаю приятный json в консоли, включая информацию обо всех трех узлах!

Проблема: Если я запускаю этот код и узел 10.200.0.10 вниз, то он не пытается самонастройки с помощью двух других узлов, как указано в их примере из их документации. Вместо этого происходит выброс, и приложение заканчивается.

Ошибка:

WARNING: [null][ConfigEndpoint]: Could not connect to remote socket. 
Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException: Connection refused: /10.200.0.10:8091 
    at  com.couchbase.client.core.utils.Blocking.blockForSingle(Blocking.java:85) 
    at com.couchbase.client.java.cluster.DefaultClusterManager.info(DefaultClusterManager.java:59) 
    at com.couchbase.client.java.cluster.DefaultClusterManager.info(DefaultClusterManager.java:54) 
    at quickTestDeleteThis.Main.main(Main.java:10) 
Caused by: java.net.ConnectException: Connection refused: /10.200.0.10:8091 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) 
    at com.couchbase.client.deps.io.netty.channel.socket.nio.NioSocketChannel.do FinishConnect(NioSocketChannel.java:223) 
    at com.couchbase.client.deps.io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:285) 
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:589) 
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:513) 
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:427) 
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:399) 
    at com.couchbase.client.deps.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140) 
    at com.couchbase.client.deps.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) 
    at java.lang.Thread.run(Thread.java:745) 
Nov 02, 2016 4:45:22 PM com.couchbase.client.core.endpoint.AbstractEndpoint$2 operationComplete 
WARNING: [null][ConfigEndpoint]: Could not connect to remote socket. 

Я предположил, что это может быть что-то делать с 10.200.0.10 быть оркестратором и никакого нового оркестратором будет реагировать с информацией кластера. Но согласно arhcitcture документации Couchbase: http://www.couchbase.com/sites/default/files/uploads/all/whitepapers/Couchbase_Server_Architecture_Review.pdf

Если оркестратором узла аварий, существующие узлы будут обнаруживать, что он больше не доступен и будет избран новый Orchestrator сразу, так что кластер продолжает работать без сбоев.

Казалось бы, если соединение с первым узлом в списке узлов в объекте Cluster невозможно подключить, то это не попытка другого, возможная ошибка?

ответ

Смежные вопросы