При построении высоконадежных систем на базе платформы 1С:Предприятие 8 часто возникает необходимость настройки отказоустойчивости на уровне кластера серверов. Одним из ключевых этапов такой настройки является правильное указание списка серверов в параметрах подключения к информационной базе. В этой статье мы подробно разберем, как прописать несколько серверов, где найти официальное описание в справке и какие технические нюансы следует учитывать при администрировании такой системы.
Рассмотрим базовое правило написания строки соединения. Если ваша задача — подключить клиентское приложение к базе, которая распределена между несколькими центральными серверами, необходимо перечислить их через запятую. Разберем стандартный формат записи:
Server1:Port1,Server2:Port2
Проанализируем пример конкретной строки подключения:
Server1:1541,Server2:1541
В данном случае Server1 и Server2 — это сетевые имена (или IP-адреса) ваших серверов, а 1541 — порт главного менеджера кластера. Рассмотрим важные рекомендации по заполнению этого поля:
Для тех, кому необходимо официальное подтверждение правил настройки, обратимся к первоисточникам. Платформа 1С описывает эти механизмы в нескольких разделах:
.v8i.Выясним, как платформа обрабатывает этот список. При запуске клиент перебирает указанные узлы слева направо. Если первый сервер в списке недоступен или не отвечает в течение установленного таймаута, система автоматически предпринимает попытку подключения к следующему по списку узлу. Это и обеспечивает первичную отказоустойчивость при входе в программу.
Интересной особенностью платформы является механизм самообновления настроек подключения. Рассмотрим, как это работает на практике:
Когда пользователь успешно подключается к одному из серверов кластера, сервер 1С передает клиенту актуальный список всех центральных серверов, входящих в данный кластер. Платформа может самостоятельно дописать недостающие адреса в локальный файл настроек пользователя (обычно это ibases.v8i, расположенный в профиле пользователя %AppData%\1C\1CEStart; при необходимости можно выполнить массовую замену имени сервера в ibases.v8i через GPO).
Таким образом, даже если системный администратор указал в настройках только один сервер, после первого удачного сеанса список может расшириться автоматически, если кластер настроен корректно на стороне сервера. Посмотрим на пример структуры файла ibases.v8i:
[ИмяВашейБазы]
Connect=Srvr="Server1:1541,Server2:1541";Ref="ИмяБазыДанных";
ID=...
OrderInList=...
Folder=/
Важно понимать разницу между рабочими и центральными серверами. Указание нескольких адресов в строке подключения имеет смысл только в том случае, если в вашем кластере настроено несколько центральных серверов. Центральный сервер несет в себе функции менеджера кластера. Если в вашей инфраструктуре один центральный сервер, а остальные узлы являются лишь рабочими серверами (на которых запущены рабочие процессы rphost), то перечисление рабочих серверов в строке Connect=Srvr=... не даст эффекта отказоустойчивости. Клиент сначала должен авторизоваться именно на менеджере кластера.
Разберем ситуацию комплексно. Для создания по-настоящему надежной системы недостаточно просто перечислить серверы 1С через запятую. Проанализируем смежные уровни инфраструктуры:
AlwaysOn или зеркалирование MS SQL Server. В параметрах базы данных в консоли 1С в этом случае указывается адрес Listener-а (прослушивателя) SQL-кластера.Nginx или HAProxy), который будет распределять запросы между рабочими узлами.Подводя итог, можно сказать, что перечисление серверов через запятую в формате Server1,Server2 является простым и эффективным способом настройки базовой отказоустойчивости на стороне клиента, позволяющим избежать простоев при выходе из строя одного из узлов кластера 1С.