`
wj2me
  • 浏览: 12772 次
  • 性别: 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是一种...

    Erlang入门ppt

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

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

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

    erlang学习资料

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

    erlang_版本24.3.4.4

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

    erlang23.2版windows64位.zip

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。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是瑞典...

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    erlang22最新下载包

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...

Global site tag (gtag.js) - Google Analytics