Erlang分布式 编程

 启动节点

节点A

节点B

在节点nodeB中查看注册的节点。

一个简单的名称服务器

-module(kvs).
-author("chen").

%% API
-export([start/0, store/2, lookup/1]).

start() -> register(kvs, spawn(fun() -> loop() end)).
store(Key, Value) -> rpc({store, Key, Value}).
lookup(Key) -> rpc({lookup, Key}).
rpc(Q) ->
  kvs ! {self(), Q},
  receive
    {kvs, Reply} ->
      Reply
  end.

loop() ->
  receive
    {From, {store, Key, Value}} ->
      put(Key, {ok, Value}),
      From ! {kvs, true},
      loop();
    {From, {lookup, Key}} ->
      From ! {kvs, get(Key)},
      loop()
  end.

在nodeB 中启动服务器

在节点nodeA上调用执行一个函数

rpc:call(Node, Module, Function, Args) -> Res | {badrpc, Reason}

Node:节点的地址,如节点名称nodeA,则 nodeA@192.163.1.164

Module, Function, Args就跟apply的(Module, Function, Args)
 

远程调用节点nodeB上的kvs :store(Key, Value) 函数。

成功执行,

通过调用lookup(Key)去查看刚刚存储的kv。

可以看到已经成功保存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值