1 erlang erlang-otp gen-server erlang-supervisor
有人告诉我,simple_one_for_one对聊天应用程序非常有用,因为每个聊天客户端都是一个服务器进程(gen_server).这是正确的吗?
我想知道为什么我们需要它?为什么不创建一个中心服务器(gen_server)来处理所有聊天客户端通信?因为聊天客户端的数量可能非常大,所以只有一台服务器无法快速处理,导致系统速度变慢?
我认为创建像simple_one_for_one这样的服务器太多可能会占用过多的系统资源.我是一个新的OTP人,所以我真的需要解释这一点.
是的,这个想法是每个客户端都有一个进程(gen_server).
这使您可以隔离一个客户端与另一个客户端的故障
如果您在一个进程中拥有所有人,则必须非常小心地处理可能出错的所有事情并使您处理崩溃(因此,断开所有客户端的连接).
通过每个客户端一个进程,您可以编写快乐路径的代码,并在出现问题时让它崩溃.最糟糕的情况是你放弃一个客户端.
进程相当便宜(就像创建线程一样).在现代机器上,您可以拥有数百万.
如果您的用户群数以百万计,那么我确信您最终会拥有多台服务器.因此,在盒子上可以轻松扩展到数十万到数百万的东西是充足的.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |