gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 06:50:39 24 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

我最终做的是创建一个 Auth 服务器、一个 Main API 服务器和一个 Chat 服务器。前端指向 auth.domain.com、api.domain.com、chat.domain.com。

当用户登录时,Auth 服务器会生成一个 JWT 存储在 redis 中。主 API 服务器和聊天服务器检查 redis 以确保 JWT 有效,然后执行。

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

关于node.js - 考虑到 k8s,如何让两个后端 nodejs 服务器相互通信以处理不同的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66359456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com