【问题标题】:Chat application using grpc streaming使用 grpc 流的聊天应用程序
【发布时间】:2021-07-31 01:57:59
【问题描述】:

我正在使用 grpc streaming(go) 构建一个一对一的聊天应用程序。 我能够通过维护活动用户连接的地图来实现它。 我打算部署在云运行或网络应用中。

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

有没有办法解决这个问题?

【问题讨论】:

    标签: go google-cloud-platform microservices grpc google-cloud-run


    【解决方案1】:

    解决方案是将应用的共享状态 (map) 移动到可以在任意数量的 Cloud Run 实例之间共享的服务。

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

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

    【讨论】:

    • 我尝试将地图状态存储在 redis 中。但无法在其他微服务中使用这些存储状​​态,因为它存储为字符串。您能否分享将客户端状态存储在redis中并在其他微服务中使用的任何相关链接/代码示例。我非常努力地解决了这个问题,但没有成功
    • 您需要自己制定一种方法来编组|将您的连接数据类型序列化为例如Redis(数据类型)并返回。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 2023-01-28
    • 2014-08-13
    • 2011-01-06
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多