Перейти к содержанию

Группа соединений

InstanceConnectionGroup

InstanceConnectionGroup - класс, агрегирующий параметры для настройки группы соединений к узлу Tarantool.

Концепция групп соединений

Место InstanceConnectionGroup в архитектуре Java-клиента

Высокоуровневые клиенты TarantoolCrudClient/ TarantoolBoxClient осуществляют взаимодействие с узлами Tarantool посредством логически разделенных групп соединений. Каждая группа представляет собой набор соединений (IProtoClient) к одному узлу Tarantool.

При создании высокоуровневого клиента объект класса IProtoClientPool создает группы соединений на основе метаданных, переданных в объектах класса InstanceConnectionGroup. Одна логическая группа соединений создается на основе метаданных одного объекта класса InstanceConnectionGroup.

Использование нескольких соединений в рамках одной группы позволяет повысить производительность работы Java-клиента, особенно в ситуациях, когда операции над данными выполняются параллельно. Выбор соединения для выполнения запроса определяется правилами балансировки (подробнее).

Описание параметров

Имя параметра Описание Значение по умолчанию
host Адрес узла, к которому должна подключиться группа соединений localhost
port Порт, на котором узел Tarantool ожидает соединения. Вместе с host составляет полный адрес узла Tarantool 3301
user Имя пользователя, с помощью которого будет производиться аутентификация клиента при подключении к узлу Tarantool user
password Пароль для пользователя ""
size Количество соединений к одному узлу ( Netty connection) 1
tag Тег-имя группы подключения. Необходим для идентификации группы в пуле соединений, логах user:host:port
flushConsolidationHandler Подробнее null
authType Тип алгоритма аутентификации Java-клиента. Подробнее смотрите Javadoc класса AuthType и официальную документацию Tarantool AuthType.CHAP_SHA1

Значения для host и port задаются в соответствии с InetSocketAddress.

Использование

Для создания экземпляра класса InstanceConnectionGroup нужно воспользоваться InstanceConnectionGroup.Builder:

final InstanceConnectionGroup connectionGroup = InstanceConnectionGroup.builder()
    .withHost("localhost")
    .withPort(3301)
    .withUser("user2581-test")
    .withPassword("pwd-1")
    .withSize(3)
    .withTag("Node-1")
    .withAuthType(AuthType.CHAP_SHA1)
    .build();

Далее группа добавляется в TarantoolCrudClientBuilder или TarantoolBoxClientBuilder:

final TarantoolCrudClient crudClient = TarantoolFactory.crud()
    .withGroups(Arrays.asList(connectionGroup))
    .build();