Couchbase Connection - внешний IP вместо внутреннего

В том же центре обработки данных у меня есть сервер приложений (клиент), который подключается к кластеру Couchbase, содержащему 3 узла.

Я хотел бы, чтобы клиент подключался через внутренний IP-адрес, а не внешний для оптимизации производительности. Предположим, что это мои IP-адреса:

  • node1InternalIP / node1ExternalIP
  • node2InternalIP / node2ExternalIP
  • node3InternalIP / node3ExternalIP

При создании моего клиента диванной базы (java-код) я предоставляю свои внутренние IP-адреса, но когда соединение установлено, я получаю следующие журналы:

2014-07-28 12:33:21.030 INFO net.spy.memcached.auth.AuthThread:  Authenticated to /node1InternalIP :11210
2014-07-28 12:33:21.142 INFO net.spy.memcached.auth.AuthThread:  Authenticated to /node2InternalIP :11210
2014-07-28 12:33:21.253 INFO net.spy.memcached.auth.AuthThread:  Authenticated to /node3InternalIP :11210
2014-07-28 12:33:21.374 INFO com.couchbase.client.vbucket.provider.BucketConfigurationProvider:  Carrier config not available, bootstrapped through HTTP.
2014-07-28 12:33:21.544 INFO com.couchbase.client.CouchbaseConnection:  Added {QA sa=cache2.lac.company.info/node1ExternalIP:11210, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2014-07-28 12:33:21.545 INFO com.couchbase.client.CouchbaseConnection:  Added {QA sa=cache3.lac.company.info/node2ExternalIP:11210, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2014-07-28 12:33:21.545 INFO com.couchbase.client.CouchbaseConnection:  Added {QA sa=cache4.lac.company.info/node3ExternalIP:11210, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue

Таким образом, кажется, что аутентификация выполняется по внутреннему IP-адресу, но само соединение проходит через внешний IP-адрес, что меня беспокоит.

Кроме того, время от времени я получаю CheckedOperationTimeoutException:

net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting for operation - failing node: cache2.lac.company.info/node1ExternalIP:11210

Исключение показывает, что клиент получает тайм-аут от внешнего IP-соединения.

Как я могу убедиться, что мое соединение будет использовать внутренние IP-адреса?


person forhas    schedule 28.07.2014    source источник


Ответы (1)


Couchbase использует один адрес (IP или имя хоста) для идентификации каждого узла кластера. Эти адреса затем отправляются клиентам при начальной загрузке, чтобы они могли подключаться ко всем узлам в кластере. То, что вы видите, будет связано с тем, что вы изначально настроили узлы кластера, используя внешний IP-адрес в качестве их имен, и это то, что отправляется клиентам при их подключении.

Чтобы достичь того, что вы хотите сделать, вам нужно использовать имена хостов ( руководство администратора) вместо IP-адресов для идентификации каждого узла, затем настройте DNS ваших клиентов на использование внешнего IP-адреса, а DNS узлов (или /etc/hosts) на использование внутренний IP.

person DaveR    schedule 28.07.2014