不同区域(GCP)中的存储区和实例

时间:2020-04-25 19:16:53

标签: google-cloud-platform google-kubernetes-engine google-cloud-memorystore

我正在React Native中构建一个聊天应用,后端在Node.JS中,我正在使用GKE来部署服务器代码。

我正在使用与内部IP连接的cloud sql postgresql。这有效。我还使用了一个内存存储(redis)。这是问题所在。

对于自动缩放,我计划在不同地区(目前为europe-west1和us-central1)获得多个GKE集群。我已经配置了一个带有所有实例组的后端的负载均衡器。我不知道这是正确/理想的解决方案,但是它可以工作。问题在于您只能从同一区域内的实例连接到Redis数据库。如果我将use-central1用作我的memorystore实例的区域,则无法通过我创建的eu-cluster中的vm连接到它。

克服此问题的最佳解决方案是什么?我在与redis实例相同的区域中创建了一个额外的VM,并将haproxy配置为用作内存存储的反向代理,这样,无论它们位于哪个区域,我都可以通过所有实例连接到redis数据库输入。但是我不知道这是否是正确的解决方案?

编辑:

我正在使用websockets(socket.io)聊天消息。因为我计划使用多台服务器,所以我需要一个集中式数据库来存储(引用)套接字ID,以便用户可以向连接到其他服务器的用户发送消息。

出于多种原因,我认为redis是正确的解决方案:

  • 我可以使用socket.io-redis在Redis上存储套接字ID
  • 快速响应时间
  • 我不知道所存储数据的大小,但绝对不是Mb的

我正在使用一个postgresql数据库来存储其他信息(例如用户名,密码),但是在我看来,对于实时应用程序来说,redis是更好的解决方案。

0 个答案:

没有答案