Использование переадресации портов для конфигурации базы данных - PullRequest
1 голос
/ 01 декабря 2011

Кто-нибудь использует переадресацию портов для конфигурации базы данных? У меня много разных сред, и их настройка для каждого Java-приложения ухудшается, потому что мы допускаем ошибки. Поэтому я думал об использовании переадресации портов в каждом окне, чтобы мое приложение было настроено только на localhost: 3306/3307 ... и его не нужно менять.

Есть мысли об этом?

Ответы [ 3 ]

0 голосов
/ 01 декабря 2011

Обычно лучше иметь небольшой файл конфигурации, такой как карта с именем хоста в блоке, с конкретными настройками имени хоста, такими как строки подключения БД. Или просто локальный файл .properties, который загружается в приложение.

Я думаю, что это плохая идея - иметь зависимость от администрирования хостов / портов. Делает развертывание более сложным.

0 голосов
/ 01 декабря 2011

Использование переадресации портов для соединений с базой данных имеет смысл только в экстремальных условиях.В целом это не очень хорошая идея, потому что:

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

  • Настройка правил переадресации портов зависит от системы, и именно этого в первую очередь пытаются избежать люди, написав свои клиенты, например, на Java.

  • Для правильной настройки правил переадресации портов требуется опыт работы в сети, выходящий далеко за пределы того, что обычно требуется для указания клиентского приложения на нужный сервер БД.Вы не должны зависеть от людей, имеющих такие знания под рукой.

  • добавляет слой косвенности, который не сразу виден, если только кто-то не взглянет на настройки ОС.Журналы клиента и информация об отладке будут все указывать на процесс базы данных, который на самом деле не существует, добавляя еще больше путаницы к потенциальной будущей проблеме.

  • это добавляет еще одну точку, где что-то может сломаться- что, если обновление ОС изменяет способ обработки правил переадресации портов?Что если новое приложение брандмауэра решит заблокировать перенаправленные пакеты, несмотря на существование правила пересылки на уровне ОС?Ваше клиентское приложение просто сообщит о невозможности подключения к серверу БД, и вы почесываете голову, пытаясь выяснить, в чем дело.

  • оно может потенциально мешать другим приложениям,невидимым перенаправлением их портов. знаете ли вы настроенные порты сервера на всех ваших целевых системах?Что, если локальный пользователь также пытается использовать, например, SSH-туннелирование, а его почтовый клиент непреднамеренно пытается связаться с вашим сервером БД?

  • он плохо масштабируется вообще .Что если у вас есть несколько приложений, говорящих с несколькими серверами?

  • Я упоминал об этом раньше, но это заслуживает повторения: вы действительно хотите, чтобы ваши люди (или вы сами) прошли через это?журналы и файлы конфигурации от клиентов, которые утверждают, что подключаются к localhost:XXXX?

Мне только когда-либо приходилось использовать переадресацию портов, как это один раз, когда мне приходилось туннелироватьчерез соединение SSH для доступа к серверу БД, который в противном случае был недоступен из-за ограничений безопасности.Это была среда разработки, и я никогда не использовал бы что-то подобное в производстве - по крайней мере, без большой суеты с людьми, заставляющими меня прыгать через обручи вот так.

Если вы хотите, чтобы все ваши клиентыприложения для подключения к одному серверу БД, то это проблема конфигурации.Рассматривайте это так, как если бы вы хотели, чтобы все ваши приложения использовали одну и ту же цветовую тему или одну и ту же разметку окна:

  • пусть они разбирают общий файл конфигурации, используя общий класс Java для совместного использованиянастройки БД.

  • позволяют им читать одну и ту же переменную окружения - хотя переменные окружения в некоторых системах, как правило, немного привередливы.Лично я бы держался подальше от этой альтернативы - у нее есть все недостатки решения для переадресации портов, за исключением того, что ваше клиентское приложение будет знать, с каким сервером БД оно действительно будет разговаривать.

  • Запустите их с помощью одного сценария с опцией, связанной с общей БД.

  • используйте централизованную инфраструктуру конфигурации для распределения правильной конфигурации среди всех клиентов - хотя тогда вам необходимо будет установитьсервер конфигурации: -)

Не не используйте неясные и хрупкие обходные пути.

Удобный совет:

Недобавьте больше сложности своей жизни, она уже достаточно сложна.

0 голосов
/ 01 декабря 2011

Ну, в среде разработки я ранее делал это, используя переадресацию xinetd. Но, разумеется, лучше всего использовать отдельные файлы свойств.

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