Настройка TIBCO EMS для обеспечения отказоустойчивости в Linux
Служба корпоративных сообщений TIBCO предоставляет службу сообщений Java (JMS) совместимые коммуникации на широком спектре платформ и прикладных технологий. Ниже я опишу основные этапы настройки, необходимые для настройки двух машин Linux с установленным EMS для совместной работы в отказоустойчивой конфигурации с общим состоянием. Эта конфигурация была сделана с помощью TIBCO EMS 8.5.0.
Общее состояние EMS. Конфигурация отказоустойчивости — это конфигурация, в которой конфигурация и хранилище сообщений совместно используются двумя серверами EMS. Один сервер EMS находится в активном состоянии; запись и чтение из хранилища сообщений и файлов конфигурации. Как только активный сервер выйдет из строя, пассивный сервер ems вступит во владение и начнет читать файлы конфигурации и хранилище сообщений, а также продолжит принимать соединения от клиентов.
Строка подключения будет иметь вид tcp://сервер1:порт1, tcp://сервер2:порт2
port1 может иметь то же значение, что и port2. 7222 — это значение по умолчанию для порта EMS.
Монтаж
Вы бы установили EMS нормально. С помощью универсального установщика TIBCO или просто разархивировав файл TIB_ems_8.5.0_linux_x86_64.zip. Мне не удалось найти двоичный файл TIBCOuniversalinstaller для EMS 8.5.0, поэтому я просто распаковал файлы в какую-то папку, скажем, /var/tibco/ems/8.5.
Конфигурация
Чтобы настроить EMS, вы просто берете копию из примеров файлов конфигурации и редактируете их. Основной файл конфигурации tibemsd.conf определяет такие вещи, как прослушиваемый IP-адрес и порт, имя сервера EMS, расположение других файлов конфигурации и так далее.
Для автономного сервера EMS я просто установил следующие параметры:
сервер это имя сервера
пользователи путь к user.conf
группы путь к groups.conf
темы путь к топикам.conf
хвосты путь к queues.conf
acl_list путь к acl.conf
заводы путь к factory.conf
маршруты путь к route.conf
мосты путь к bridges.conf
транспортирует путь к transports.conf
тибрвкм путь к файлу tibrvcm.conf
товары длительного пользования путь к Durables.conf
каналы путь к каналам.conf
магазины путь к store.conf
хранить путь, по которому будут создаваться файлы хранилища
Слушать адрес прослушивания и порт, напр. tcp://10.10.101.22:8222 или tcp://8222 для прослушивания IP-адреса по умолчанию.
авторизация должен быть установлен на включено для проверки паролей пользователей
За Конфигурация отказоустойчивости EMS, две машины EMS совместно используют файлы конфигурации и хранилище данных. Сервер EMS попытается заблокировать хранилище данных в общей файловой системе, чтобы убедиться, что это активный сервер. Если один сервер EMS может заблокировать файл в хранилище данных и не может получить доступ к другому серверу EMS, он будет активным сервером.
Файловая система, совместно используемая двумя машинами, должна поддерживать следующие критерии:
Порядок записи. Решение для хранения данных должно записывать блоки данных в совместно используемое хранилище в том же порядке, в котором они расположены в буфере данных.
(Решения, которые записывают блоки данных в любом другом порядке (например, для повышения эффективности диска), не удовлетворяют этому требованию.)Постоянство синхронной записи: по возвращении из вызова синхронной записи решение для хранения гарантирует, что все данные были записаны в надежное постоянное хранилище.
Распределенная блокировка файлов. Серверы EMS должны иметь возможность запрашивать и получать монопольную блокировку общего хранилища. Решение для хранения не должно назначать блокировки двум серверам одновременно. Серверы EMS используют эту блокировку для определения основного сервера.
Уникальное право собственности на запись: серверный процесс EMS, имеющий блокировку файла, должен быть единственным серверным процессом, который может записывать в файл. Как только система перенесет блокировку на другой сервер, ожидающие записи, поставленные в очередь предыдущим владельцем, должны завершиться ошибкой.
Более подробная информация о необходимой файловой системе указана в руководстве пользователя документации TIBCO для EMS. Дополнительная информация о файловой системе указана в этой ссылке поддержки TIBCO:
Статья базы знаний Требования к совместно используемому состоянию
Я попробовал файловую систему cifs для общего состояния и не обнаружил никаких проблем.
Конфигурация выполняется на каждом сервере для основного конфигурационного файла tibemsd.conf. Остальные файлы конфигурации и расположение хранилища данных должны находиться в общей папке.
Каждый сервер EMS имеет собственную копию файла tibemsd.conf. Параметры конфигурации, связанные с настройкой отказоустойчивости, следующие:
сервер: имя сервера. Два сервера должен имеют одинаковое имя сервера.
ft_server: URL-адрес другого сервера в отказоустойчивой настройке.
пароль: пароль, который используется каждым сервером для подключения к другому.
авторизация: должен быть включен.
Путь к файлам конфигурации следует изменить, чтобы он указывал на общую папку состояния.
хранилище данных: должен указывать на папку хранилища данных в общей папке состояния.
ft_heartbeat: указывает интервал (в секундах), в течение которого сервер должен отправлять сигнал пульса другому серверу, чтобы указать, что он все еще работает.
ft_activation: максимальная продолжительность времени между сигналами сердцебиения. По умолчанию 60 секунд.
ft_reconnection_timeout: Если клиент не подключается повторно в течение этого периода времени, сервер удаляет его состояние из общих файлов состояния. Время ft_reconnect_timeout начинается после того, как сервер полностью восстановит общее состояние, поэтому это значение не учитывает время, необходимое для восстановления файлов хранилища. По умолчанию 60 секунд.
Чтобы запустить сервер EMS, вы будете использовать команду tibemsd -conf tibemsd.conf.
Резюме
Шаги
- Установите сервер EMS на компьютер1.
- Установите сервер TEA для использования ems-агента на компьютере1. (Необязательно)
- Настройте сервер EMS на компьютере1 для обеспечения отказоустойчивости в качестве активного сервера.
- Настройте ems-агент TEA и зарегистрируйте сервер EMS на одном из серверов TEA. (Необязательно)
- Повторите вышеуказанные шаги на машине2.
- Запустите сервер EMS на машине 1
- Запустите сервер EMS на машине 2
- Подключитесь к каждому серверу TEA, чтобы убедиться, что вы видите настроенные серверы EMS. (Необязательно)
- Протестируйте настройку EMS FT, используя образец Java-приложения клиента EMS tibjmsMsgProducerPerf из папки examples/java/ EMS.