Я пытаюсь создать пул соединений для фабричного класса, который позволяет мне создать пул соединений.user хочет указать отсутствие соединений и максимальных подключений извне. Я искал какое-то время, некоторые предложили использовать Singleton или поставить код инициализации внутри некоторого статического блока. Но другие говорили, что синглтон плохой. Итак, каков должен быть правильный шаблон проектирования для объединения пулов соединений? Благодарю.
Синглтон плохо по нескольким причинам, например, обычно вы не можете вводить объект Mock. Если вы предоставляете механизм (или не нуждаетесь), чтобы его проверить, я не вижу проблемы.
Обратите внимание, что есть много отличных пулов соединений, я бы предложил сначала изучить существующие.
Как полагают предыдущие комментаторы, используйте такие библиотеки, как Apache DBCP, C3P0, BoneCP или HikariCP.
Но если вы хотите "придумать свой собственный пул соединений" и понять, как это можно сделать для образовательной цели, начните с singleletone и продолжите его, чтобы удержать предварительно сконфигурированное количество ваших экземпляров.
Пул соединений с базами данных
Первоначально в моем приложении я использовал apache-commons-dpcp
и я столкнулся с множеством проблем с подключением, а последний после длительного анализа использовал bonecp
. Я бы посоветовал использовать bonecp
соединение. И строго не используйте Singleton patten. Это принесет вам большую боль, когда ваше приложение будет жить.
Объединение соединений TCP
Для TCP Pooling я предлагаю использовать Netty и взглянуть на Apache MINA.