Go 使用grpc流的聊天应用程序

Go 使用grpc流的聊天应用程序,go,google-cloud-platform,microservices,grpc,google-cloud-run,Go,Google Cloud Platform,Microservices,Grpc,Google Cloud Run,我正在使用grpc流媒体(go)构建一对一聊天应用程序。 我能够通过维护活动用户连接的地图来实现它。 我计划在云运行或web应用程序中部署 问题: 如果我将部署的最小节点设置为2。一个容器不知道其他容器的活动用户连接映射。这破坏了应用程序 是否有办法解决此问题?解决方案是将应用程序的共享状态(map)移动到一个服务,在该服务中,可以跨任意数量的云运行实例共享 实现这一点的常用方法是使用(共享)缓存,例如 添加这样的服务会带来复杂性和成本,因此请确保在继续之前了解后果。我尝试在redis中存储地图

我正在使用grpc流媒体(go)构建一对一聊天应用程序。 我能够通过维护活动用户连接的地图来实现它。 我计划在云运行或web应用程序中部署

问题: 如果我将部署的最小节点设置为2。一个容器不知道其他容器的活动用户连接映射。这破坏了应用程序


是否有办法解决此问题?

解决方案是将应用程序的共享状态(
map
)移动到一个服务,在该服务中,可以跨任意数量的云运行实例共享

实现这一点的常用方法是使用(共享)缓存,例如


添加这样的服务会带来复杂性和成本,因此请确保在继续之前了解后果。

我尝试在redis中存储地图状态。但无法在其他微服务中使用这些存储状态,因为它存储为字符串。您是否可以分享在redis中存储客户端状态的任何相关链接/代码示例,并将其用于其他微服务。我非常努力地解决了这个问题,但没有成功。您需要自己找到一种方法,将连接数据类型封送|序列化到例如Redis(数据类型)中并返回。祝你好运