`
willvvv
  • 浏览: 334156 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

erlang分布式入门(一)-ping pong

阅读更多

测试环境和http://willvvv.iteye.com/blog/1523918 一样,192.168.0.182(centos-182)和192.168.0.183(centos-183),

1.按照上面链接(步骤1-4)设置通过ssh hostname 免输入密码直接登录。

 

2.设置erlang的magiccookie,由于都是以root账号操作,分别在两台机子上执行以下命令

cd /root

vi .erlang.cookie 

输入

centos_erlang

:wq 退出保存

chmod 400 .erlang.cookie,linux下需要用户对magiccookie有读权限

 

3.启动epmd进程,它负责映射符号名到机器地址在两个机器都执行:epmd -daemon

 

4.ping-pong测试代码,来源自网上erlang教程,tut17.erl

-module(tut17).

-export([start_ping/1, start_pong/0,  ping/2, pong/0]).

ping(0, Pong_Node) ->
    {pong, Pong_Node} ! finished,
    io:format("ping finished~n", []);

ping(N, Pong_Node) ->
    {pong, Pong_Node} ! {ping, self()},
    receive
        pong ->
            io:format("Ping received pong~n", [])
    end,
    ping(N - 1, Pong_Node).

pong() ->
    receive
        finished ->
            io:format("Pong finished~n", []);
        {ping, Ping_PID} ->
            io:format("Pong received ping~n", []),
            Ping_PID ! pong,
            pong()
    end.

start_pong() ->
    register(pong, spawn(tut17, pong, [])).

start_ping(Pong_Node) ->
    spawn(tut17, ping, [3, Pong_Node]).

 

5.在centos-183上执行erl -sname 'pong' ,启动pong节点,进入erl命令行之后输入 tut17:start_pong().

在centos-182上执行 erl -sname 'ping',启动ping节点,进入erl命令行之后输入 tut17:start_ping('pong@centos-183').

 

命令及输出见下图:



 

 

 

注意在ping节点上的erl命令行启动ping进程的时候如果输入tut17:start_ping(pong@centos-183). 会报错如下:

** exception error: bad argument in an arithmetic expression
     in operator  -/2
        called as pong@centos - 183

 

在参考“庄周梦蝶”的http://www.blogjava.net/killme2008/archive/2007/06/15/124547.html 时就出现这个错误,后来在stackoverflow 上找到一个相关问题 http://stackoverflow.com/questions/413736/naming-nodes-in-erlang 才得以解决!

  • 大小: 9.8 KB
  • 大小: 4.3 KB
分享到:
评论

相关推荐

    erlang21.1-windows-64

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高度容错、可扩展的平台,常用于构建大规模、高可用性的电信、银行和互联网应用。标题“erlang21.1-windows-64”指的是...

    esl-erlang-26.0.2x86-64.zip

    error: /tmp/esl-erlang_26.0.2-1~alinux~3_x86_64.rpm : not an rpm package (or packape manifest): arning: /tmp/rabbitmg-erver 3.12.4-1 all.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY ...

    erlang-23.2.3-1.el7.x86_64.rpm和erlang-23.2.1-1.el7.x86_64.rpm.rar

    标题中的"erlang-23.2.3-1.el7.x86_64.rpm"和"erlang-23.2.1-1.el7.x86_64.rpm.rar"代表了两个不同的Erlang版本。`.rpm`文件是用于Red Hat Enterprise Linux (RHEL) 和其衍生发行版如CentOS的软件包管理格式,而`....

    erlang-xmerl-22.3-1.el7.x86_64.rpm 镜像下载

    erlang-xmerl-22.3-1.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。

    erlang-22.3-1.el7.x86_64.rpm

    总结,"erlang-22.3-1.el7.x86_64.rpm"是一个专为RabbitMQ准备的Erlang版本,适合在RHEL 7或类似系统上运行,利用Erlang的并发、分布式和容错特性来保证RabbitMQ的稳定性和效率。通过RPM包的形式,用户可以便捷地在...

    erlang-rpm-21.3.4.zip

    "erlang-rpm-21.3.4.zip"是一个包含Erlang版本21.3.4的RPM(Red Hat Package Manager)包的压缩文件,适用于Linux操作系统,尤其是基于RPM包管理系统的发行版,如CentOS、Fedora和RHEL等。 Erlang的主要特点包括: ...

    最新版erlang-23.3.4.3-1.el7.x86_64.rpm(CentOS7)

    Erlang是一种高级编程语言,特别为并发、分布式计算和容错设计,广泛应用于网络通信、实时系统和大型分布式计算环境中。最新版的Erlang是23.3.4.3-1.el7.x86_64.rpm,这个版本针对CentOS 7进行了优化。Erlang以其轻...

    erlang-xmerl-23.0.2-2.el7.x86_64.rpm

    erlang-xmerl-23.0.2-2.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。

    erlang-xmerl-22.2-1.el7.x86_64.rpm

    erlang-xmerl-22.2-1.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。

    erlang-18.3-1.el7.centos.x86_64.zip

    在标题中的"erlang-18.3-1.el7.centos.x86_64.zip",我们看到的是Erlang的一个特定版本,18.3,针对64位的CentOS 7操作系统(el7)的安装包。这个版本的Erlang包含了必要的组件和服务,使得它能够在CentOS 7上稳定...

    分布式的Key-Value存储系统Ringo.zip

    Ringo 是一个分布式的Key-Value存储系统,采用 ErLang 语言开发。支持磁盘数据存储。 Ringo is an experimental, distributed, replicating key-value store based on consistent hashing and immutable data. ...

    erlang-xmerl-23.0.3-1.el7.x86_64.rpm 镜像下载

    erlang-xmerl-23.0.3-1.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。

    erlang-23.1-1.el8.x86_64.rpm

    erlang-23.1-1.el8.x86_ ,erlang官网下载很慢,所以提供该下载链接。

    esl-erlang-24.2.1-1-centos-7-amd64.rpm

    esl-erlang_24.2.1-1_centos_7_amd64.rpm

    esl-erlang-25.0.3-1-centos-7-amd64.rpm erlang-25.0.3-1 rpm

    esl-erlang_25.0.3-1_centos_7_amd64.rpm erlang_25.0.3-1 rpm用于rabitmq基础环境安装

    erlang-asn1-19.3.6.4-1.el7.x86_64.rpm

    erlang-asn1-19.3.6.4-1.el7.x86_64.rpm

    erlang-25.0-1.el8.x86_64.rpm

    erlang 安装包。 rabbitmq 安装所需要的

    erlang-20.3-1.el7.centos.x86_64.rpm

    erlang-20.3-1.el7.centos.x86_64.rpm

    erlang-21.3-1.el7.x86_64.rpm

    erlang-21.3-1.el7.x86_64.rpm rabbitmq基础语言环境。

    erlang-19.0.4-1.el7.centos.x86_64.zip

    标题中的"erlang-19.0.4-1.el7.centos.x86_64.zip"揭示了我们讨论的是Erlang的一个特定版本——19.0.4,该版本针对的是Linux发行版CentOS 7的64位架构。Erlang的版本号通常包括主要版本号、次要版本号和补丁版本号,...

Global site tag (gtag.js) - Google Analytics