有没有人使用 websocket 而不是 gRPC 或 REST api 来进行微服务之间的互通?

Muh*_*mer 3 websocket microservices grpc

Websocket 拥有 gRPC 所做的一切,并且以相同的方式实现。

那么有没有这样的系统的例子。

如果不是为什么?

Sob*_*van 8

WebSocketHTML5 功能的旧标准部分,而 gRPC 是完整的远程过程调用机制。gRPC 在底层使用 HTTP/2。

也就是说,将gRPC 与 WebSockets进行比较有点像apple to oranges。在我看来,HTTP/2 与 WebSockets 的比较更有趣。这是我喜欢的链接:WebSocket 能否在 HTTP/2 中存活?

在裸通信协议本身之上,gRPC 处理更多。它添加了整个 RPC 层。您在 proto 文件中定义所有内容,并生成静态类型(取决于语言)的客户端和服务器代码。HTTP/2 是 gRPC 的一个实现细节,实际上,它可以使用 WebSockets 来实现,但 WebSockets 不会在裸 TCP 通信之上增加太多(除了安全层,wss:// 的情况)

当 WebSockets 在 HTTP/1.1 协议中不可用时,它更像是一种实现服务器回推的解决方法,而长轮询是唯一的选择。

回答这个问题:我不知道任何基于 WebSocket 的微服务互通框架,但我确实为此使用了 gRPC,而且它很棒 ;)

  • Http/2 自动工作,您不必在应用程序级别与其交互。对于 websocket,你可以。对于 gRPC,即使它使用 HTTP/2,您也可以定义事件处理程序、发布/订阅之类的东西。这非常像 websockets。鉴于我认为通过 websocket 实现合同验证然后构建 gRPC 会更容易。 (2认同)