JMS (esp Tibco EMS) могу ли я иметь среду в посреднике сообщений

У меня есть брокер сообщений с некоторыми темами и набор приложений, работающих на нем. Теперь я хочу запустить новый набор тех же приложений (скажем, для среды QA) на те же темы (на том же брокере, если смогу). Каков наилучший способ сделать это. Создание нового брокера и / или создание нового набора тем является обременительным, поскольку наша среда находится под жесткой бюрократией.

4 ответа

AFAIK EMS не поддерживает ничего похожего на то, что вы предлагаете. Есть несколько вариантов, чтобы получить то, что вы ищете.

Наличие независимых серверов EMS было бы идеальным решением. Это позволило бы вашей непроизводственной среде иметь некоторые взлеты, не вызывая проблем в вашей производственной среде.

Используя один и тот же сервер, вы можете иметь привязанный к среде префикс, привязанный ко всем именам очередей / тем. Должен быть какой-то параметр уровня приложения, для которого используется префикс (qa, dev, test, prod, ...). Это обеспечит довольно хорошую изоляцию сред, но, вероятно, будет работать не слишком хорошо, если какая-либо из сред действительно сильно загружена.

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

Я бы рекомендовал не использовать одни и те же серверы промежуточного программного обеспечения для производства и контроля качества в одно и то же время (особенно для брокеров сообщений), поскольку в тестировании качества вы, вероятно, захотите выполнять нагрузочные и временные тесты, которые не влияют на производительность. Как упоминает Джон, использование отдельного сервера было бы самым простым подходом.

Это довольно странно, почему существует такая жесткая бюрократия по репликации одного и того же набора тем в среде QA; ты не можешь просто взять свалку производственной установки EMS?

FWIW с некоторыми брокерами сообщений, создание тем и очередей довольно тривиально. например, в приложении Apache ActiveMQ разработчики выбирают, какие имена очередей и тем они хотят использовать, - затем вы подключаетесь к брокеру для правильной среды, и это просто работает (хотя вы можете добавить защиту, чтобы запретить определенным пользователям создавать темы / очереди, если вы хотите добавить бюрократия:).

Как в сторону; Я всегда находил довольно комичным, что в корпоративных средах существуют довольно драконичные политики относительно того, какие имена очередей / тем разрешено использовать, однако разработчики веб-приложений могут свободно использовать любые идентификаторы URI, которые они хотят в своих приложениях. В конце концов, в обоих случаях это просто логические имена - промежуточное программное обеспечение должно просто работать и поддерживать аудит в любом случае:)

Это требование может быть достигнуто с помощью квалификатора в темах / очередях сообщений или "темах", поэтому вы можете разделить режим среды от DEV до TEST на одном сервере. Помните, что поток сообщений между средами не рекомендуется используя тот же сервер EMS.

Это конкретное требование должно быть учтено в "Соглашениях по именованию субъектов", которые являются классической задачей в архитектуре SOA, определяющей форматы сообщений, шаблоны обмена сообщениями, дизайн субъектов и т. Д.

Например, ваш предмет может быть..... где будет DEV или TEST или UAT и т. Д.

Я бы не использовал одни и те же серверы для нескольких сред для одного и того же приложения, вы могли бы иметь перекрестные связи, когда сообщения для одной среды оказывались в другой. Дублирование очередей / тем не является сложным, и это должно быть быстрое изменение конфигурации приложения.

Другие концепции, о которых вы, возможно, захотите узнать, это мосты (где сообщения в тему / очередь могут быть скопированы в другую). Я использовал это, чтобы одно и то же сообщение из одной темы автоматически копировалось в 2 разные очереди. Я знаю, что вы можете использовать надежного подписчика по теме, но для этого нужна очередь (ИМХО)

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

Вы также можете сделать выбор сообщения на мосту.

Другие вопросы по тегам