一个非常简单的分布式客户/服务器示例

时间:2012-06-26 19:03:51

标签: concurrency

如果我有一个非常简单的服务,这是在服务器上完成的,我如何使这个服务可扩展,如在多个服务器上运行?是使用register(mod,func,[args])吗?

在产生进程,创建节点和创建新服务器之间,我感到有些困惑。

如何将客户端活动卸载到新服务器上以分散负载?

2 个答案:

答案 0 :(得分:3)

产生过程可以让您实现更高的粒度,从而有效利用多核。它还为您提供了实现异步行为的机会。

创建节点允许您通过多个主机分发系统。节点可以看到彼此并透明地进行通信。

如果服务器足够无状态,您可以创建几个服务器节点并在它们之间实现负载均衡流量。

如果服务器有一些繁重的计算,你可以使用几个服务器节点映射/减少它。

我不确定这个带注册的代码片段是什么意思。通常你不注册服务器端点,而是某种具有服务器节点,位置,负载知识的路由器。

'Node'和'process'来自Erlang世界,但'server'是系统中的一个层。任何节点都可以设计为服务器,也可以生成客户端请求。进程在本地或远程节点上生成。进程可以执行/实现服务器或客户端逻辑。

答案 1 :(得分:1)

按照这个完整的Erlang online free book,你会发现一切。您可以直接跳转到多处理,分发和客户端/服务器系统