繁体   English   中英

考虑到 k8s,如何让两个后端 nodejs 服务器相互通信以处理不同的任务

[英]How to have two backend nodejs servers communicate with each other to handle different tasks with k8s in mind

我有一个处理所有身份验证的快速服务器(使用令牌身份验证并有 redis 存储会话来控制每个设备的登录数量)和读取/写入 mongoDB。

我想为我的用户添加聊天(使用 socket.io 和 socket.io-redis),而不是在当前后端对其进行编码,我想知道如何将它分开,或者这是否是一个好主意。

我以为是因为我在 k8s 集群上部署,但我想知道如何 go 了解这两台服务器之间的通信。

我正在使用入口 nginx controller 在负载均衡器中打开到后端的流量。 起初我以为我会在聊天服务器和用户之间路由来自后端的所有流量。 但情况并非如此,因为聊天服务器需要直接连接到用户? 那么如何保护后端与聊天服务器之间的通信以及聊天服务器与用户之间的通信呢?

也许我想太多了,但任何见解都值得赞赏。

我最终做的是创建一个身份验证服务器、一个主 API 服务器和一个聊天服务器。 前端指向 auth.domain.com, api.domain.com, chat.domain.Z4D236D9A2D102C556D9A2D102C

The Auth server generates a JWT that is stored in redis when a user logs in. The Main API server and Chat server check redis to make sure the JWT is valid and then executes.

因为所有这些都在 k8s 集群上运行并且可以有多个实例,所以我使用了 Pub/Sub,所以即使用户不在同一个 websocket 服务器(聊天服务器)上,他们仍然会收到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM