分布式可以看做是连接紧密的并行处理器
均衡负载,在任务规模较小的时候,可以通过随机或轮询的方式分派任务,任务较大时,可以使用主从模式,在请求时分派任务.
并发性事分布式系统的核心,分布式系统的挑战是在错误发生时系统的健壮性
epmd进程
epmd的命令是erlang运行时系统的一部分,它为erlang分布式的节点扮演端口映射看守程序的角色.,
Epmd是Erlang Port Mapper Daemon的缩写,在Erlang集群中相当于dns的作用,供给节点名称到端口的查询办事,epmd绑定在总所周知的4369端口上。
启动新的网络节点时,Erlang使用epmd (Erlang端口号对应管理系统) 指派端口号,提供节点使用。
Erlang nodes是如何找到对方并通信?
负责Erlang节点间通信的是一个叫作epmd(Erlang Port Mapper Daemon)的后台线程。如下:
引用
$ ps ax | grep epmd
305 ?? S 0:00.02 /opt/local/lib/erlang/erts-5.8.2/bin/epmd -daemon
513 s003 U+ 0:00.00 grep epmd
当启动一个node时,node会检查本机是否有epmd在运行,如果没有则启动epmd。epmd启动之后会跟踪记录所有本机运行的node和这些node被分配的端口号。
当一个在本机的node想和远程的node通信时,本地的epmd首先会和远程的epmd通信(默认在4369端口上使用TCP/IP),询问是否有相应的node在那里运行。如果有,则远程的epmd会响应请求,并直接和本地的epmd通信。
但是epmd不会自动去寻找其他的epmd,这些通信和寻找过程必须被node的查找操作触发。
无论多少分布式节点运行在它的上面,每台机器都只会启动一个epmd进程,该看守进程会监听来自4369的所有连接的请求并把它们映射到被接节点的监听端口,,如果还没开始运行,当你启动第一个分布式的erlang节点时,epmd会自动运行.
也可以手动开启,并传入一些命令和设置参数. ,
关于linux主机名:
[root@localhost ~]#
分别代表用户名(root),主机名(localhost),当前路径(~,当前用户的home目录),权限标志位(#代表root,$代表普通用户)
有时候是[rooot@bogn ~]# bogon直译过来就是匿名人嘛,说明你的机器没办法把你局域网内的主机名解析成相对应的IP地址
linux主机名变为bogon的解决方法
一:使用hostname命令
[root@test ~]# hostname yourname
这样只是临时更改了主机名。
二:修改linux主机的配置文件/etc/sysconfig/network 和 /etc/hosts
1.修改/etc/sysconfig/network里面的主机名字。
# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=yourname //在这修改hostname
GATEWAY=192.168.1.1
2.修改/etc/hosts里面的名字
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.121 yourname //在这修改hostname
//有时候只有这一行
127.0.0.1 yourname localhost.localdomain localhost
3.让更改的名字在不重启机器下生效
# hostname yourname
# su
分享到:
相关推荐
阅读此书将有助于深化对Erlang分布式编程的理解,避免常见的错误,提升编写高质量Erlang程序的能力。同时,"打开方式.htm"可能是阅读资料的指南,而"爱书吧-全国最大图书-课件免费下载.url"则可能指向更多相关的学习...
Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。 Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此...
在《Erlang并发编程》一书中,详细介绍了Erlang语言的核心并发模型和编程范式,包括但不限于串行编程、进程创建、进程间通信、分布式编程以及错误处理等。书中指出Erlang的并发性能得益于其轻量级进程,这些进程是由...
如果你既想要erlang的并发分布式编程的理念又不喜欢erlang丑陋的停留在80年代的那种语法,又想要现代的性感的漂亮的时尚的Ruby/Python式的面向对象观而不满意其并发模型,那么,可以尝试Reia. 标签:Reia
Erlang的设计哲学是创建简单、可扩展、容错的程序,其语法规则相对简单明了,非常适合并行编程和分布式计算。 #### 书籍推荐 《Erlang编程:软件为并发世界而设计》是Joe Armstrong所著的入门级Erlang书籍。作者在...
在使用Erlang进行分布式编程时,管理节点的连接状态是非常重要的。可以使用`nodes()`函数来查看当前节点已连接的所有节点。在两个节点首次成功通信后,它们会相互保持连接状态,允许继续进行消息的交换。Erlang系统...
“即便我已经使用Erlang多年,在编程的时候仍然需要参考《Erlang编程指南》。不同层次的Erlang程序员都会发现本书是有价值的学习和参考资料。”, ——Steve Vinoski,《IEEE Internet Computing》专栏作家, 《Erlang...
7. OTP(Open Telecom Platform):OTP是Erlang的标准库,提供了一系列的设计模式和库,包括进程、监督树、应用管理和错误处理等,极大地简化了并发和分布式编程。 8. 监督树(Supervision Trees):OTP中的监督树...
这里提到的陷阱主要指的是在开发分布式Erlang程序时可能会遇到的问题,这些问题往往由于开发者对Erlang分布式的某些特性的理解不足而产生。以下是一些具体的陷阱: 1. **消息传递的顺序性**:虽然Erlang提供了消息...
《Erlang编程》是一本深入探讨Erlang语言的图书,主要面向对并发处理、分布式系统和高可用性有需求的开发者。Erlang是一种为构建大规模并发系统而设计的函数式编程语言,它源自爱立信,以其在电信行业的成功应用而...
Erlang是一种高级编程语言,专为构建并发、分布式、容错的系统设计。Erlang语言的编程规则和约定对于保证代码的可读性、可维护性、性能和稳定性至关重要。本文将对Erlang编程规则的中文翻译版本中的部分内容进行详细...
Erlang是一种面向并发的、函数式编程语言,最初由爱立信开发,用于构建高可用性、容错性和可扩展性的分布式系统。在Erlang中,并发是语言的核心特性,它提供了一种高效且简洁的方式来处理大量并发任务。 并发编程在...
Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,旨在帮助初学者理解和掌握Erlang的核心...
本书是讲述下一代编程语言Erlang 的权威著作,主要涵盖顺序型编程、异常处理、编译和运行代码、并发编程、并发编程中的错误处理、分布式编程、多核编程等内容。本书将帮助读者在消息传递的基础上构建分布式的并发...
Erlang是一种专为构建可扩展、并发和分布式系统而设计的编程语言。它最初由爱立信公司开发,用于电信领域的软件开发。Erlang的设计理念包括轻量级进程、消息传递、容错性和分布式计算,这些特性使得Erlang非常适合...
Erlang是一种强大的、动态类型的函数式编程语言,特别适合构建高可用性、容错性和可扩展性的分布式系统。OTP则是Erlang生态系统的核心组成部分,提供了大量的库和设计模式,旨在简化并发、错误处理和系统管理。 ...
随着学习的深入,学习者还将接触到模块化编程、高级并发概念、分布式编程、代码维护和优化等更高级的内容。 Erlang编程语言因其独特的并发模型和消息传递机制而备受关注,它被广泛用于电信、银行、电子商务等需要高...
书是讲述下一代编程语言Erlang 的权威著作,主要涵盖顺序型编程、异常处理、编译和运行代码、并发编程、并发编程中的错误处理、分布式编程、多核编程等内容。本书将帮助读者在消息传递的基础上构建分布式的并发系统...