erlang 的分布式笔记

20140319 erlang分布式编程
   
    为何需要分布式编程:
                  1:效率
                        我们把程序分成多个部分,并行地运行在不同机器上,这可以让程序 执行的更快。
                  2:可靠性
                        通过把一个系统分布运行到所若干机器上,我们可以构建容错系统
。如果某台计算机崩溃,那么这个系统会由其他计算机接管继续运行。
                  3:可伸缩性
                        由于我们会不断地扩展应用程序,哪怕是最强大的计算机,它的计算资源迟早都会有耗尽的一天。在这种情况下,我们必须能通过增加机器来扩充容量。增加一个新的计算机应该是一项简单的工作,而不需要伤筋动骨地修改应用程序的架构。
                  4:天生需要分布式的应用程序
                         很多应用程序天生就需要分布式。如果我们编写一个网络游戏或者聊天系统,用户肯能遍布全球。如果在某个特定地区,用户群足够庞大,那么我们就会倾向与在靠近用户的地方·配置更多的计算资源。
                 5:乐趣


  创建一个文件来本地测试
                   
                  1:在本地机器测试
                        kvs.erl
                        register(注册名, spawn(module, function,Args)) 创建一个进程,注册的进程,然后就可以通过向进程名字发送消息了。举例子: 注册名 ! message。
                         模块功能:用户可以存储信息,也可以查找
                     -module(kvs).
                        -export([start/o,store/1,lookup/1]).
                        start() ->
                                     register(kvs,spawn(fun()-> loop/0 end).
                        store(Q) ->   
                                     rpc(Q),
 
                          rpc(Msg)
                                             kvs ! {self(),Msg}
                                                    receive 
                                                               {kvs,Reply}->
                                                                            Repyl
                                                          end.
                           lookup(key) ->
                                           rpc(Q).
                                          
                           loop()->
                                     receive
                                                 {From,{Key,Value}} ->
                                                           put(Key,{ok,Value}),
                                                                  From ! {kvs,true},
                                                                   loop();
                                                      {From,key} ->
                                                                  From !{kvs,get(Key)},
                                                                           loop();
                                          end.
                  
                 分布式:
                        erl -sname ganlf
                              kvs:start()。




                          erl -sname  hao
                                  rpc:call(ganlf@debian,kvs,store,[msg]).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值