[erlang(分布式)]请问 erlang如何实现分布式与广播

20 views
Skip to first unread message

郎咸武

unread,
Mar 30, 2010, 9:32:50 PM3/30/10
to erlang-china, ec...@googlegroups.com
1.请问 erlang如何实现分布式与广播
(1)分布式:
假如一台服务器实现一个操作远远不能满足程序的运行,现需要三台服务器共同来完成。这时候通过什么样的方式来保证我程序正常运行且准确的返回我需要的结果。
erlang是如何实现上面的功能。
(2)广播:
    作为服务器,我一次需要向所有的客户端发一个通知。
erlang如何实现。


junyi sun

unread,
Mar 30, 2010, 9:44:25 PM3/30/10
to erlang...@googlegroups.com
(1) 很好实现啊,erlang内置支持。比如下面这段代码

-module(sjy).
-export([fib/1,pfib/2]).
pfib(N,Pid)->
    R = fib(N),
    Pid!R.

fib(0)->1;
fib(1)->1;
fib(N) when N>1 ->
    Pid = self(),
    spawn('f...@10.61.0.78',sjy,pfib,[N-1,Pid]),
    spawn('f...@10.61.0.190',sjy,pfib,[N-2,Pid]),
    receive
        R1-> ok    
    end,
    receive 
        R2-> ok
    end,
    R1+R2.

(2)不清楚。不过erlang应该支持相关的网络协议吧。



2010/3/31 郎咸武 <langx...@163.com>

Feng Yu

unread,
Mar 31, 2010, 2:14:53 AM3/31/10
to erlang...@googlegroups.com

专注 高性能容错分布式服务器的研究和实现
http://blog.yufeng.info


2010/3/31 郎咸武 <langx...@163.com>

1.请问 erlang如何实现分布式与广播
(1)分布式:
假如一台服务器实现一个操作远远不能满足程序的运行,现需要三台服务器共同来完成。这时候通过什么样的方式来保证我程序正常运行且准确的返回我需要的结果。
erlang是如何实现上面的功能。

通过monitor或者link来监视远端的进程, 如果远端发生异常,我们是可以感知的.
 
(2)广播:
    作为服务器,我一次需要向所有的客户端发一个通知。
erlang如何实现。

erlang标准的做法是通过tcp来挨个广播. 如果你的服务器是在局域网, 我推荐用TIPC协议, 实现可靠的多播.   用NIF来扩展不难的.

Reply all
Reply to author
Forward
0 new messages