Существуют различные реализации для использования JMS в качестве службы запроса / ответа. Хотелось бы узнать идеальную реализацию. Ниже представлены различные реализации.
1) Постоянная очередь запросов, динамическая очередь ответов
Все сообщения с запросами публикуются в единой очереди запросов с указанием очереди ответов. Служба принимает сообщение запроса и публикует сообщение обратно в динамическую очередь ответов.
- Нет необходимости в идентификаторе корреляции.
- Несколько потребителей соответствующих очередей ответов
2) Постоянная очередь запросов, Постоянная очередь ответов
Все сообщения запроса публикуются в единой очереди запросов с указанием уникального идентификатора в свойствах jms. Уникальный идентификатор хранится локально. Служба принимает сообщение запроса и публикует сообщение обратно в очередь ответов. Потребитель с одним ответом будет принимать сообщение и действовать соответствующим образом на основе уникального идентификатора.
- Требуется идентификатор корреляции.
- Единый потребитель очереди ответов
3) Постоянная очередь запросов, Постоянная тема ответа
Все сообщения с запросами публикуются в единой очереди запросов с указанием уникального идентификатора в свойствах jms. Служба принимает сообщение запроса и публикует сообщение с тем же уникальным идентификатором в свойствах jms обратно в тему. Потребители ответа установят селектор сообщений для выбора только сообщения, которое содержит уникальный идентификатор.
- Требуется идентификатор корреляции.
- Несколько потребителей темы ответа
Кто-нибудь знает другие реализации? И какая из этих реализаций является идеальным решением для использования JMS в качестве службы запросов / ответов?