erlang分布式编程有两种模型

一、分布式erlang

运行在可信的网络环境中

1、rpc提供的远程过程调用

rpc:call(Node,Mode,Fun,Args) ->Result|{badrpc,Reason}

2、global里的函数可以用来在分布式系统里注册名称和加锁,以及维护一个全连接网络

spawn(Node,Fun) -> Pid

spawn(Node,Mode,Fun,Args) ->Pid

spawn_link(Node,Fun) -> Pid

spawn_link(Node,Mode,Fun,Args) ->Pid

disconnect_node(Node) ->bool()|ignored

monitor_node(Node,Flag) ->true

如果Flag是true就会开启监视,Flag是false就会关闭监视。如果开启了监视,那么当
Node加入或离开Erlang互连节点组时,执行这个内置函数的进程就会收到{nodeup, Node}
或{nodedown, Node}的消息。

nodes() ->[Node]

node() ->Node

它会返回本地节点的名称。如果节点不是分布式的则会返回nonode@nohost。

node(Arg) ->Node

它会返回Arg所在的节点。Arg可以是PID、引用或者端口。如果本地节点不是分布式的,
则会返回nonode@nohost。

is_alive() ->bool()

如果本地节点是活动的,并且可以成为分布式系统的一部分,就返回true,否则返回false。

{RegName,Node} ! Msg

send可以用来向一组分布式Erlang节点里的某个本地注册进程发送消息

二、基于套接字的分布式模型

通过创建两个代理进程,一个客户端,一个服务器端,将erlang的消息转换为tcp包数据,通过tcp协议收发消息,tcp可以密码保护服务。

erlang分布式编程模型的更多相关文章

  1. Erlang 103 Erlang分布式编程

    Outline 笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期              变更说明 2014-11-23 A Outl ...

  2. 《erlang程序设计》学习笔记-第3章 分布式编程

    http://blog.csdn.net/karl_max/article/details/3985382 1. erlang分布式编程的基本模型 (1) 分布式erlang:这种模型可以让我们在一个 ...

  3. Erlang 102 Erlang并发编程

    笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期              变更说明 2014-11-02 A outline 2014 ...

  4. Erlang分布式在linux和windows上的注意事项

    没事做,就在两台机器间测试下Erlang分布式的例子,一个台是windowsXP,一台装的redHat9,没有详细的文档,自己摸索着搞成功了,记录下. 1.首先,分布式Erlang的实现提供了自有的安 ...

  5. Erlang入门(三)——分布式编程

    明天要回家一个星期了,好好休息下.今天找到别人翻译的Erlang编程手册,值的好好读一遍.    所谓分布式的Erlang应用是运行在一系列Erlang节点组成的网络之上.这样的系统的性质与单一节点上 ...

  6. Actor模型(分布式编程)

    Actor的目的是为了解决分布式编程中的一系列问题.所有消息都是异步交付的,因此将消息发送方与接收方分开,正是由于这种分离,导致actor系统具有内在的并发性:可以不受限制地并行执行任何拥有输入消息的 ...

  7. 云巴:基于MQTT协议的实时通信编程模型

    概要 有人常问,云巴实时通信系统到底提供了一种怎样的服务,与其他提供推送或 IM 服务的厂商有何本质区别.其实,从技术角度分析,云巴与其它同类厂商都是面向开发者的通信服务,宏观的编程模型都是大同小异, ...

  8. Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark编程模型 1.1 术语定义 l应用程序(Application): 基于Spar ...

  9. 基于python yield机制的异步操作同步化编程模型

    又一个milestone即将结束,有了些许的时间总结研发过程中的点滴心得,今天总结下如何在编写python代码时对异步操作进行同步化模拟,从而提高代码的可读性和可扩展性. 游戏引擎一般都采用分布式框架 ...

随机推荐

  1. schemes-universalLink-share_IOS-android-WeChat-chunleiDemo

    schemes-universalLink-share_IOS-android-WeChat-chunleiDemo The mobile terminal share page start APP ...

  2. 制作自己的web字体

    今天教给大家制作自己的web字体

  3. ccf cv讲座记录

  4. linux基础-安装篇

    linux现在的版本已经升级到7.x的版本了,现在虽然企业还是使用6.x的版本,但是未来的趋势肯定是往7的方向发展的,很多的培训机构或者一些学校的课程也都更新的7的版本进行教学,下面的安装实例就是以7 ...

  5. Java的设计模式----strategy(策略模式)

    设计模式: 一个程序员对设计模式的理解: “不懂”为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开 ...

  6. Maven编译可执行jar

    打包: 第一种情况:独立项目,且无第三方依赖包 这种情况下,我们需要maven的maven-jar-plugin插件来帮我们打包.请在项目pom.xml中的plugin配置处加入如下内 <plu ...

  7. 关于git提交、还原使用

    1.本地修改,未提交到本地仓库,想要恢复到修改前 右键这个文件-team-show local hostory -找到某一版本-右键-get Contents 即可恢复到某一版本 2. 命令:git ...

  8. 关于单选按钮在提交时获取所选择的选项得value值问题

    在此使用jQuery,别忘记引用. radio在使用时若要判断选中的是哪一个一定要注意区分input的name值.以此来判断你所获取的单选按钮的value值.直接上代码: <body> & ...

  9. mybatis配置sql超时时间

    mybatis如果不配置,默认超时时间是不做限制的.当系统慢sql很多时,势必会增加数据库压力,系统性能及稳定性降低.所以有必要要设置sql超时设置,下面配置超时时间是5分钟. 第一步:全局配置如下 ...

  10. Python语法点滴

    string: string.capitalize()  把字符串的第一个字符大写 string.startswith(obj)  string.endswith(obj) string.find(s ...