Я пытаюсь понять пул соединений в Datastax Cassandra Driver, чтобы лучше использовать его в своем веб-сервисе.
У меня версия 1.0 документации. Он говорит:
Драйвер Java использует соединения асинхронно, поэтому несколько запросов могут быть отправлены по одному и тому же соединению одновременно.
Что они понимают под связью? При подключении к кластеру у нас есть: Строитель, Кластер и Сессия. Какой из них связан?
Например, такой параметр:
maxSimplicousRequestsPerConnection - количество одновременных запросов на всех подключениях к узлу, после которых создаются дополнительные подключения.
Итак, эти соединения создаются автоматически в случае объединения в пул (чего я и ожидал). Но каковы именно связи? Кластерные объекты? Сессии?
Я пытаюсь решить, что оставить «статичным» в моем веб-сервисе. На данный момент я решил оставить Builder статичным, поэтому для каждого вызова я создаю новый кластер и новый сеанс. Это нормально? Если кластер является подключением, все должно быть в порядке. Но так ли это? Теперь регистратор сообщает для каждого вызова:
2013: 12: 06 12:05:50 DEBUG Cluster: 742 - Запуск нового кластера с контактными точками
2013: 12: 06 12:05:50 DEBUG ControlConnection: 216 - [Control connection] Обновление списка узлов и карты токенов
2013: 12: 06 12:05:50 DEBUG ControlConnection: 219 - [Управляющее соединение] Обновление схемы
2013: 12: 06 12:05:50 DEBUG ControlConnection: 147 - [Управляющее соединение] Успешно подключено к ...
Значит, он каждый раз подключается к кластеру? Это не то, что я хочу, я хочу повторно использовать соединения.
Итак, соединение на самом деле является Сессией? В этом случае я должен сохранять статическим кластер, а не Builder.
Какой метод мне следует вызвать, чтобы быть уверенным, что я повторно использую соединения, когда это возможно?