Vertx - Закрытие соединения - JDBC и другие - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть статья, которая потребляет сообщение из шины событий и обрабатывает его.У меня есть вопрос, когда соединение JDBC должно быть закрыто.Существует 2 подхода

  1. Закрытие соединения после обработки сообщения.Но это будет очень дорого, потому что я буду открывать / закрывать соединение каждый раз.

  2. Надеюсь, что Vertx закроет соединение, когда вертикал остановлен / отменен (что буквально никогда), и этоне будет никаких утечек памяти, пока соединение открыто.Я открою соединение в методе start (), чтобы при наличии доступного сообщения.

С другой стороны, если у меня есть бэкэнд эластичного поиска, и я используюSDK эластичного поиска, в котором есть определенный метод для закрытия клиента, когда соединение должно быть действительно закрыто?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Используйте пул соединений, который отнимет большую часть затрат на закрытие / открытие соединений.При использовании пула соединений закрытие соединения возвращает его в пул соединений для повторного использования.

Основная схема использования:

try (Connection connection = dataSource.getConnection()) {
  // use connection
}

В конце блока соединение имеет видзакрыт, что - если dataSource имеет пул соединений - сделает его доступным для повторного использования.

0 голосов
/ 26 сентября 2019

Вы всегда можете поместить свой код cleanup в метод Stop () интерфейса Verticle.Он будет вызван, когда вертикаль начнет процедуру развертывания.

См. Vert.x Документы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...