Я относительно новичок в этом, но у меня настроен кластер Tomcat (с использованием mod_proxy
из httpd) с репликацией сеанса (отдельный сервер Redis) для отказоустойчивости.
У меня есть пара вопросов об этой настройке:
Мое приложение (spring / hibernate) имеет отдельную базу данных для каждого пользователя. Итак, проблема здесь в том, что источник данных (с использованием Spring вместе с гибернацией для сохранения) создается на уровне Tomcat. Таким образом, какой бы пул соединений я ни делал, он будет на уровне сервера.
В соответствии с конфигурацией кластера экземпляры Tomcat создадут свой собственный пул подключений.
Я хотел бы знать, возможен ли пул соединений на уровне кластера с использованием Tomcat, т.е. есть ли способ убедиться, что все серверы в кластере используют общий пул подключений?
Я не хочу настраивать
DataSource
на каждом экземпляре Tomcat из-за проблем с производительностью. Перед настройкой кластера приложение было развернуто на одном сервере, аDataSource
был настроен таким образом, что разрешал только несколько (50) подключений в пуле подключений наDataSource
.Теперь в кластерной среде я не могу позволить себе создавать или разделять такое количество подключений на каждом Tomcat, а также динамическая регистрация узлов создаст дополнительные проблемы. Я также хотел бы знать, есть ли какое-нибудь альтернативное решение этой проблемы, если объединение соединений невозможно или неэффективно?