Я собирал соединения и перерабатывал их, а не собирался с одним из перечисленных вами вариантов. Таким образом вам не нужно уничтожать уже созданные соединения. Единственное, что я устал, это иметь слишком большой пул, поэтому убедитесь, что вы установили разумный порог.
Что-то вроде этого:
no connections are available in pool
create connection (add it back once finished using it)
connections are available in pool
fetch connection from pool
Причина выбора пула, а не закодированный номера:
- держать одно подключение для всех модулей - это будет узкое место, если вы не работаете однопоточное приложение, а вы не
- установить соединение для каждого модуля - вам нужно предоставить больше контекста. Это может быть хорошим подходом, основанным на том, как многопоточность каждого модуля.
- подключитесь к Кассандре каждый раз, когда у меня есть запрос - строительные соединения не дешевы (код ниже), поэтому не отбрасывайте их!
.
Cluster cluster = Cluster.builder().addContactPoints("localhost").build();
long start = System.currentTimeMillis();
Session session = cluster.connect();
System.out.println(String.format("Took %s ms", System.currentTimeMillis() - start));
Выход: 490 мс.
Я использую этот драйвер. Вы рекомендуете поддерживать одно соединение или одно соединение для каждого модуля? –
Клиент представляет собой пул соединений с несколькими хостами, вы должны использовать один экземпляр клиента и повторно использовать его во всех своих модулях: http://www.datastax.com/documentation/developer/nodejs-driver/1.0/nodejs-driver /faq/njdFaq.html – jorgebg