gRPC client - to - client communication between other Lan network

gRPC client - to - client communication between other Lan network

我有一个关于 gRPC 通信的问题。

我知道 gRPC 有 4 种通信模型:unay、server-streaming、client-streaming 和 bi-direction。而且“客户端”和“服务器”的术语非常灵活,因为它确实是点对点通信。

我想知道“如果两个或多个客户端位于不同的 LAN 网络中,gRPC 是否支持客户端到客户端的通信”?就像下面的图片:

例如,在MQTT协议中,位于不同局域网的两个客户端可以通过MQTT代理中的主题进行通信。

如果纯 gRPC 不能支持这种模式,我可以添加其他成分让 gRPC 支持这种通信吗?

你绘制的图表应该可以正常工作。两个客户端都通过双向流连接到同一台服务器,服务器转发来自 CLIENT(1) 的消息,用于 CLIENT(2),反之亦然。

这适用于简单的情况。如果您需要添加容错能力(例如多台服务器),您将需要系统更复杂,例如数据库来存储尚未收到的消息。

请注意,您的比较不太有效,因为 MQTT 处于堆栈的应用层,而 gRPC 是传输层的一部分。 (注意https://en.wikipedia.org/wiki/MQTT.右边的table)