我正在尝试为我的社交网络构建一个聊天服务器,这是我目前提出的设计模式。
查看 user_handler 它是一个工作进程,它创建多个链接的用户进程并根据登录请求将这些进程 ID 保存到 ets 表中。
但我的问题是,如果许多并发请求来自我的 Web 服务器到我的 user_handler,那么这些消息的处理将会很慢。正确的?
就像,现在如果用户 id 2 向 3 发送消息,那么我会打电话。user_handler:send_message(SenderId = 2, SendTo = 3, Message) 然后我的用户处理程序获取 id 为 2 的用户的进程 id 并调用 user:send_message(Pid, SendTo = 3, Message)。其中 user:send_message/3 获取用户 3 的进程 id,然后检查其他条件,最后将消息发送到用户 3 的进程 id。
嗯,我不认为这是一个好的架构。
因此,任何建议都是可以理解的。
谢谢你,对不起我的英语不好。