有人告诉我,simple_one_for_one对聊天应用程序非常有用,因为每个聊天客户端都是一个服务器进程(gen_server)。这是正确的吗?为什么我们需要simple_one_for_one?
我想知道为什么我们需要它?为什么不创建只有一个中心服务器(gen_server)来处理所有聊天客户端通信?因为聊天客户端的数量可能非常大,所以只有一个服务器无法快速处理,使系统变慢?
我想也许创建太多像simple_one_for_one这样的服务器可能需要太多的系统资源。我是一个新的OTP人,所以我真的需要解释这一点。
如果我有一个gen_server来处理客户端请求,这个服务器连接并从mnesia获取数据,应该使用'simple_one_for_one'吗?因为我认为如果客户端由于某种原因导致服务器关闭,服务器的管理员将重新启动服务器,并且它可以继续处理客户端请求。我错了吗? –
另外如果你只有一个gen_server来处理所有的聊天,那么你在系统中引入了一个严重的瓶颈问题,这大大减少了并行化。 – rvirding