erlang分布式编程模型
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分布式编程模型的更多相关文章
- Erlang 103 Erlang分布式编程
Outline 笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期 变更说明 2014-11-23 A Outl ...
- 《erlang程序设计》学习笔记-第3章 分布式编程
http://blog.csdn.net/karl_max/article/details/3985382 1. erlang分布式编程的基本模型 (1) 分布式erlang:这种模型可以让我们在一个 ...
- Erlang 102 Erlang并发编程
笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期 变更说明 2014-11-02 A outline 2014 ...
- Erlang分布式在linux和windows上的注意事项
没事做,就在两台机器间测试下Erlang分布式的例子,一个台是windowsXP,一台装的redHat9,没有详细的文档,自己摸索着搞成功了,记录下. 1.首先,分布式Erlang的实现提供了自有的安 ...
- Erlang入门(三)——分布式编程
明天要回家一个星期了,好好休息下.今天找到别人翻译的Erlang编程手册,值的好好读一遍. 所谓分布式的Erlang应用是运行在一系列Erlang节点组成的网络之上.这样的系统的性质与单一节点上 ...
- Actor模型(分布式编程)
Actor的目的是为了解决分布式编程中的一系列问题.所有消息都是异步交付的,因此将消息发送方与接收方分开,正是由于这种分离,导致actor系统具有内在的并发性:可以不受限制地并行执行任何拥有输入消息的 ...
- 云巴:基于MQTT协议的实时通信编程模型
概要 有人常问,云巴实时通信系统到底提供了一种怎样的服务,与其他提供推送或 IM 服务的厂商有何本质区别.其实,从技术角度分析,云巴与其它同类厂商都是面向开发者的通信服务,宏观的编程模型都是大同小异, ...
- Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark编程模型 1.1 术语定义 l应用程序(Application): 基于Spar ...
- 基于python yield机制的异步操作同步化编程模型
又一个milestone即将结束,有了些许的时间总结研发过程中的点滴心得,今天总结下如何在编写python代码时对异步操作进行同步化模拟,从而提高代码的可读性和可扩展性. 游戏引擎一般都采用分布式框架 ...
随机推荐
- lumen框架
1,获取配置 app(); 说明:app()返回的是全局唯一的application对象,该对象的原型是Laravel\Lumen\Application 加载配置文件(config/app.php) ...
- 关于ajax跨域问题
什么是跨域 1.document.domain+iframe的设置 2.动态创建script 3.利用iframe和location.hash 4.window.name实现的跨域数据传输 5.使用H ...
- Openlayer 3 的点击弹出框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 从NPM到CNPM
从NPM到CNPM 原文 http://www.cnblogs.com/hufeng/p/5166479.html 主题 npm 引用NPM网站上的一句话:npm loves you ! NPM ...
- APP性能测试工具
各种自动化工具作用: 自动化:appium 针对接口做压测:jmeter 执行一段脚本,随机乱点:monkey 如果有用loadrunner12的话 也可以用mobilerecoder录制脚本(lr1 ...
- Spring-MVC填坑之旅-返回json数据
本文是自己开发中所遇到的问题,对一些及百度到的解决方案做一个记录. DispatcherServlet配置文件 <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean i ...
- span设置宽和高当没有内容的时候也可撑开
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- URAL 6089 Nine
水题,找误差范围之内9最多的时间,如果有多个,选择误差最小的一个,如果还有多个,选择字典序最小的一个.同一个时间可以有不同的表示方法,例如60:15也可以表示为59:75. #include<s ...
- jdbc连接数据库的步骤
1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String classN ...
- RabbitMQ持久化编码注意事项
以Java语言,MQ客户端为amqp-client作为示例 1.基本原则 direct模式,由生产者声明队列名,消费者也声明队列名 topic模式,由生产者声明交换器名,由消费者声明队列名+交换器名+ ...