使用GraphQL,可以用基于消息的方法(例如MQ)替换用于订阅的websocket



尽管我工作的公司环境接受使用基于http的请求-响应模式,这对GraphQL查询和突变来说是可以的,但他们在GraphQL订阅所需的websocket的使用方面存在问题,并且更喜欢通过IBM MQ路由订阅。

有人有这方面的经验吗?我正在考虑使用Apollo Server来提供GraphQL接口。也许有一种前端订阅解决方案可以使用IBM MQ插入?后端数据源是Oracle数据库。

消息队列通常用于服务之间的通信,而web套接字是浏览器通过恒定套接字与服务器通信的方式。这允许服务器在订阅的新事件到达时向客户端发送数据(传统的浏览器只支持"拉取",并且只能在请求时接收数据(。浏览器不实现直接订阅MQ本身所需的MQ协议。我不是MQ方面的专家,但通常所做的是有一个通过web套接字连接到客户端的订阅服务器。然后,订阅服务本身订阅消息队列,并向相关客户端通知其订阅的事件。当您需要额外的资源时,您可以轻松地横向扩展订阅服务器。

相关内容

最新更新