В настоящее время я работаю над проектом, состоящим из множества микросервисов, которые будут асинхронно передавать данные для многих возможных клиентских приложений.
Кроме того, клиентские приложения смогут взаимодействовать с системой (т.е. набор микросервисов) через ReST Открытый API.
Для широковещательной передачи данных моим первым соображением было использование MOM (ПО промежуточного слоя, ориентированное на сообщения), например AMQ.
Однако меня попросили пересмотреть это решение и предпочесть конечная точка ReST(через HTTP), чтобы предоставить API больше «Ориентирован на открытый API».
Я не большой специалист по HTTP, но мне кажется, что основными технологиями для отправки асинхронных данных с сервера на клиент являются:
Я открываю это обсуждение, чтобы получить советы/отзывы от других разработчиков, которые помогут мне оценить плюсы и минусы этого нового решения. Среди них:
For additional information, here are a few metrics regarding the amount of data to broadcast
- considerable amount of messages per seconde
- responsiveness
- more than 100 clients listening for data
Спасибо за вашу помощь и вклад





Существует множество различных определений того, что люди считают REST, а не REST, но большинство людей склонны соглашаться с тем, что с практической точки зрения и популярных передовых практик службы REST предоставляют модель данных через HTTP и ограничивают операции этой моделью данных, запрашивая состояние ресурсов. (GET) или обновление состояния ресурсов (PUT). Из этого основания вещи складываются поверх него.
То, что вы описываете, является моделью pub-sub. Хотя с академической точки зрения возможно использование концепций REST в архитектуре pub-sub, я не думаю, что это действительно то, что вы ищете здесь.
Websocket и SSE в большинстве реальных ситуаций не попадают под зонтик REST, но они могут дополнить существующую службу REST.
Если ваша цель — просто создать систему pub-sub, использующую стек технологий, с которым люди знакомы, веб-сокеты — действительно хороший выбор. Он широко доступен и работает в браузерах.