С помощью GraphQL можно заменить веб-сокет, используемый для подписки, подходом, основанным на сообщениях (например, MQ) - PullRequest
0 голосов
/ 28 апреля 2020

В то время как корпоративная среда, в которой я работаю, допускает использование шаблонов ответов на запросы на основе http (s), что нормально для GraphQL Query and Mutation, у них есть проблемы с использованием веб-сокетов, необходимых для подписки на GraphQL, и они предпочли бы, чтобы подписка маршрутизируется через IBM MQ.

У кого-нибудь есть опыт работы с этим? Я думаю об использовании Apollo Server для обслуживания интерфейса GraphQL. Возможно, существует внешнее решение для подписки, которое можно подключить с помощью IBM MQ? Внутренними источниками данных являются Oracle базы данных.

1 Ответ

0 голосов
/ 28 апреля 2020

Очереди сообщений обычно используются для связи между службами, а веб-сокеты - это то, как браузеры могут взаимодействовать с сервером через постоянный сокет. Это позволяет серверу отправлять данные клиенту, когда поступает новое событие подписки (классически браузеры поддерживают только «извлечение» и могут получать данные только тогда, когда они запрашивают это). Браузеры не реализуют протоколы MQ, которые вам понадобятся для прямой подписки на сам MQ. Я не эксперт по MQ, но обычно я работаю с сервером подписки, который подключается к клиенту через веб-сокет. Затем служба подписки сама подписывается на очередь сообщений и уведомляет соответствующих клиентов об их подписанных событиях. Вы можете легко масштабировать серверы подписки по горизонтали, когда вам нужны дополнительные ресурсы.

...