`
wj2me
  • 浏览: 12558 次
  • 性别: Icon_minigender_1
  • 来自: 杜塞尔多夫
最近访客 更多访客>>
社区版块
存档分类
最新评论

多点分布式Erlang简单实验

阅读更多
正好趁着放假,拿出以前的东西好好玩玩,今天又回顾了一遍Erlang里启动多个结点的过程,记录在此。

首先,启动两个点,foo@xxx跟bar@xxx,命令:
erl -sname foo -setcookie erlang
erl -sname bar -setcookie erlang
测试两点连通:
net_adm:ping(bar@xxx).
这里开始的时候出错来着,是由于我的/etc/hosts里边我的本机xxx的ip还是公司的,没改到家里的,ip出错了,那里自然ping不通。

在两点联通了之后,又实验了一下上次R给我们讲课中,提到的就是远程输出的问题,执行:
(foo@xxx)10> rpc:call(bar@xxx, io, format, ["haha~n"]).
就把haha打印到原地了,而实际系统中,远程连过去之后,想打印到另一端的话,就得指定那个user的方式,用另外的:
(foo@xxx)7> rpc:call(bar@xxx, io, format, [user, "haha~n", []]).
就跑过去了。

这里完了之后,程序中的要做对应的修改,从单机注册发送,改为用global的函数去做:
erlang:register(?server_name, Pid) => global:register_name(?server_name, Pid)
发送变成:
?server_name ! Msg => global:send(?server_name, Msg)

另外就是启动的时候注册的问题,可能race情况,所以用global:trans/2去做就好了:
start() -> 
    global:trans({?server_name, self()},
		 fun() ->
			 case global:whereis_name(?server_name) of
			     undefined ->
				 Pid = spawn(...),
				 global:register_name(?server_name, Pid);
			     _ ->
				 ok
			 end
		 end).

然后,就好了,可以两个点上互相有所操作了
1
0
分享到:
评论

相关推荐

    编写分布式的Erlang程序:陷阱和对策

    ### 编写分布式的Erlang程序:陷阱和对策 #### 摘要与背景 在探讨编写分布式的Erlang程序时,本篇文章聚焦于Erlang编程语言中的分布式特性,尤其是那些容易忽视的陷阱及其对应的解决方案。Erlang作为一种专为构建...

    分布式应用Erlang:Erlang_OTP_19_win64

    Erlang是一种强大的、动态类型的函数式编程语言,特别适合构建高可用性、容错性和可扩展性的分布式系统。OTP则是Erlang生态系统的核心组成部分,提供了大量的库和设计模式,旨在简化并发、错误处理和系统管理。 ...

    编写分布式的Erlang程序_陷阱和对策(中文版)

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、容错性和可扩展性的分布式系统。它以其轻量级进程、消息传递模型以及内置的并发支持而闻名。在编写分布式的Erlang...

    erlang分布式 XMPP Server.ppt

    总的来说,Erlang分布式XMPP服务器利用其强大的分布式特性、丰富的扩展机制和成熟的开源社区,为构建高效、可扩展的即时通讯服务提供了坚实的基础,尤其在结合Web和移动设备的场景下,展现出巨大的潜力。

    erlang编程 Introducing Erlang

    分布式Erlang使用虚拟机(VM)的克隆,使得构建大规模分布式系统变得简单。 ### 7. 错误处理与恢复 Erlang采用“let it crash”哲学,鼓励程序在遇到错误时立即崩溃,而不是尝试恢复。这样可以快速暴露问题,便于...

    erlang-18.3.4.7-1.el6.x86_64.rpm

    ● 分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点) ● 健壮性 - Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。 ● 软实时性- Erlang支持可编程的“软...

    Erlang脚本及其在分布式系统中的应用

    这个简单的示例展示了Erlang如何通过轻量级进程和消息传递实现并发和分布式计算。 总结来说,Erlang脚本和其在分布式系统中的应用展示了Erlang语言的强大能力,特别是在构建高并发和高可用性系统方面。Erlang的轻量...

    erlang文献及资料汇总

    编写分布式的 Erlang 程序:陷阱和对策 硝烟中的Erlang 深入底层: erlang VM基于多核处理器的可伸缩性特征 erlang VM内部数据共享机制 erlang 消息传递机制 文章地址:...

    图书:Erlang和OTP实战

    这本书深入浅出地介绍了Erlang在分布式系统、并发处理以及高可用性设计中的应用,同时结合 OTP 提供了强大的工具和库支持。通过阅读此书,读者可以掌握如何利用Erlang和OTP构建高效、容错的实时系统。 Erlang是一种...

    ErlangB_爱尔兰B公式_通信网络_

    Erlang B公式,也称为爱尔兰B公式,是通信网络中一个重要的理论工具,主要用于预测在给定服务速率下,多条电话线或信道如何有效地处理呼叫到达的流量。这个公式是由丹麦工程师A.K. Erlang在1909年提出的,它在现代...

    Erlang入门ppt

    Erlang是一种并发功能编程语言,最初由爱立信的计算机科学实验室开发,旨在解决电信行业中遇到的挑战。这份名为"Erlang入门ppt"的资料是英文版的,但提供了深入理解Erlang语言的基础。 在20世纪90年代初,软件项目...

    Erlang程序设计].源代码

    2. 并发处理:Erlang的进程模型使得并发编程变得简单且高效。每个进程都是轻量级的,相互之间通过消息传递进行通信。你可以从源码中学习如何创建、管理和通信进程。 3. OTP(Open Telecom Platform):OTP是Erlang...

    Erlang游戏程序学习完整PDF手册

    4. **简单错误处理**:Erlang的错误处理机制鼓励“失败快速”,即尽早发现并处理错误,而不是隐藏它们,这样有利于编写出更健壮的代码。 5. **模式匹配**:Erlang的模式匹配功能使得数据处理更加简洁高效,对于游戏...

    erlang学习资料

    可以尝试用Erlang构建简单的聊天服务器、分布式任务调度系统或者数据库系统。 总的来说,Erlang的学习涉及函数式编程思想、并发处理、分布式系统设计等多个方面,深入学习并实践这些知识点,将使你具备开发高效、...

    Erlang并发编程,Erlang程序设计,Erlang中文手册

    Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。  Erlang是一个结构化,... 使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。

    Erlang程序设计(第二版)及源码

    书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、ETS和DETS等主题。...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    Erlang生态的分布式Pythonpy.zip

    py 是为 Erlang 生态系统准备的分布式 Python。该项目有两个主要特性: Python 的简单封装接口,封装了 ErlPort 调用,可方便的进行: Make module-level calls Get module-level constants Instantiate ...

    erlang programming

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在“erlang programming”这个主题下,我们可以深入探讨以下几个关键知识点: 1. **Erlang语言基础**:Erlang是瑞典...

Global site tag (gtag.js) - Google Analytics