У меня возникли проблемы с разработкой службы публикации/подписки, которая будет работать на JBoss ESB. Мне нужно иметь возможность опубликовать сообщение в теме, которую, вероятно, будут слушать 200 подписчиков, и они будут что-то делать с сообщением, как только получат его. Я пишу службу публикации и образец службы подписки, чтобы продемонстрировать, как это можно сделать.
Мне нужна гарантированная доставка этим подписчикам. Если они отключаются на какое-то время, и сообщения публикуются в течение этого времени, когда они возвращаются в сеть, эти сообщения должны быть доставлены. Поэтому я думаю, что это означает, что они должны быть устойчивыми подписчиками (насколько я понимаю, тема не является устойчивой, но подписчики определены как устойчивые).
У меня сейчас есть служба публикации, которая прикрепляет сообщение ESB к очереди с поддержкой ESB, которая вызывает NotifyTopic, которая прикрепляет сообщение к теме, не поддерживающей ESB. У меня есть подписчик, у которого есть прослушиватель темы ESB-Unaware, и он вызывает веб-службу с использованием httprouter, который отправляет сообщение для обработки моей веб-службой. Все это работает, за исключением случаев, когда мой веб-сервис находится в автономном режиме (мне нужно выяснить, как справиться с этим сценарием, но я еще даже не там), или если моя подписная служба ESB находится в автономном режиме (что я проверяю, удаляя ее, отправляя несколько сообщений публикуются и переустанавливаются - на мой веб-сервис не отправляются сообщения.
Я почти уверен, что неправильно строю подписчика. Я думал, что мне нужно, чтобы подписчик был развернут на ESB. Я не уверен, как это будет работать в противном случае, как его можно будет развернуть на другом сервере, а затем по-прежнему подключать к ESB (пытаясь не возиться с взаимным ssl, брандмауэрами, портами и т. д.). Я решил, что подписчик, установленный на ESB, будет лучшим вариантом. Но я не знаю, как сделать его долговечным/иметь гарантированную доставку.