Я только начал работать над программным обеспечением, которое использует IBM MQ для некоторой связи.
Насколько я понимаю, MQ можно использовать для связи "многие к одному" и "один ко многим".
Допустим, есть 3 бизнес-приложения A, B и C. A хочет отправить сообщение с использованием MQ для B и другое сообщение для C, но A использует только одну очередь Queue1.
Теперь мой вопрос в том, можем ли мы определить (в MQMD или иначе), что определенное сообщение предназначено только для B, а НЕ для C, поэтому только B может получить его из Queue1, когда B доступен. Если нет, то как мы можем это сделать, если это вообще возможно?
Еще один вопрос: можем ли мы сделать отдельную очередь Queue2 только для связи A-B?
1 ответ
Лучше использовать отдельные очереди. Например, используйте очередь QA2B
для приложения A для отправки сообщений в приложение B и QA2C
для приложения A для отправки сообщений в приложение C. Таким образом, трафик разделяется, и вы можете административно ограничить приложение B от получения сообщений. предназначен для C и наоборот.
Можно использовать только одну очередь, в которой приложение A при отправке сообщений устанавливает свойство сообщения, которое говорит что-то вроде «Сообщение для B» или «Сообщение для C». Приложение B использует селектор для сопоставления значения свойства «Сообщение для B» при получении сообщений. Аналогичным образом приложение C также использует селектор «Сообщение для C» и принимает сообщения. Но обратите внимание, если B или C получают сообщения без какого-либо селектора, тогда сообщения могут попасть в чужие руки.
Похожие вопросы
Новые вопросы
ibm-mq
IBM MQ - это промежуточное программное обеспечение, ориентированное на сообщения, которое предоставляет собственный API, а также реализует API Java Message Service (JMS). Начиная с версии 8.0, продукт стал называться IBM MQ, ранее он назывался WebSphere MQ, а до этого MQSeries. Теги websphere-mq и mqseries являются синонимами.