erlang分布式例子
抄袭自
http://www.blogjava.net/killme2008/archive/2007/06/29/127099.html
简单的说,就是
主机上需要同时启用短节点名,或者长节点名
保证集群内部cookie一致
使用cookie文件复制的方式或者命令行-setcookie参数都可以
如果使用短节点名,则需在/etc/hosts内添加所有主机的ip-主机名映射
调用方式,有两种
通过Pid调用
-module(test). -compile(export_all). start(Node) ->
spawn(Node,test, loop, [0]). debugger(Pid) ->
Pid ! start_debugger. db(Pid) ->
Pid ! start_mnesia. loop(Val) ->
receive
start_debugger ->
debugger:start(),
loop(Val);
start_mnesia ->
application:start(mnesia),
loop(Val)
end.
注意:
如果Pid没有注册为global的name,则只能通过spawn或者spawn_link创建跨node进程 gen_server之类,可以通过start_link,在创建的时候,直接创建global的name,以后调用直接通过gen_server:call调用 另外,这个代码需要在远程节点上也编译,否则远程pid调用的时候,会崩溃
rpc:call
参数为远程node名,不需要pid
监控:net_kernel:monitor_nodes(true)
在集中中任何节点down和up的时候,会收到nodedown和up的消息,处理即可
什么时候使用什么方式,看场景了
注:
关于自动连接监控网络节点的功能,可以关注这个模块
net_kernel
erlang分布式例子的更多相关文章
- Erlang分布式在linux和windows上的注意事项
没事做,就在两台机器间测试下Erlang分布式的例子,一个台是windowsXP,一台装的redHat9,没有详细的文档,自己摸索着搞成功了,记录下. 1.首先,分布式Erlang的实现提供了自有的安 ...
- Erlang 103 Erlang分布式编程
Outline 笔记系列 Erlang环境和顺序编程Erlang并发编程Erlang分布式编程YawsErlang/OTP 日期 变更说明 2014-11-23 A Outl ...
- erlang分布式编程模型
erlang分布式编程有两种模型 一.分布式erlang 运行在可信的网络环境中 1.rpc提供的远程过程调用 rpc:call(Node,Mode,Fun,Args) ->Result|{ba ...
- erlang分布式入门(一)-ping pong
erlang分布式入门(一)-ping pong 测试环境和http://willvvv.iteye.com/blog/1523918 一样,192.168.0.182(centos-182)和192 ...
- erlang 分布式数据库Mnesia 实现及应用
先推荐一篇:mnesia源码分析(yufeng) - linear hash ETS/DETS/mnesia 都使用了linear hash算法 http://en.wikipedia.org ...
- 《erlang程序设计》学习笔记-第3章 分布式编程
http://blog.csdn.net/karl_max/article/details/3985382 1. erlang分布式编程的基本模型 (1) 分布式erlang:这种模型可以让我们在一个 ...
- Erlang Concurrent 并发进阶
写在前面的话 本文来源于官方教程 Erlang -- Concurrent Programming.虽然没有逻辑上的关系,但建议在掌握了Erlang入门系列教程的一些前置知识后继续阅读. 之前我是逐小 ...
- Erlang基础知识集锦
http://wenku.baidu.com/link?url=or-8mkUYUM0uVeqCYESGe93YIlh2IDLP7lFOwRlwr8Syf3PeHbwJC5DPCErs4NFrb1p4 ...
- Erlang模块erl翻译
命令: erl 概述: Erlang模拟器 描述: erl程序启动一个Erlang运行时系统.准确的信息是依赖于系统的(举例,erl是否是脚本或程序,其它程序调用). ...
随机推荐
- javascript打开新页面的方法
方案一: A标签: 这里要注意target的设置,_Blank是指新窗口,也可以用js来模拟创建. <a href="http://www.cnblogs.com" targ ...
- Android -- 工程架构,电话拨号器, 点击事件的4中写法
(该系列整理自张泽华android视频教程) 1. android工程 各个文件夹的作用 src/ java原代码存放目录 gen/ 自动生成目录 gen 目录中存放所有由Android开发工具自动 ...
- spring mvc:拦截器不拦截静态资源的三种处理方式
方案一.拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml) <mvc:resources location="/" mapping="/**/* ...
- 如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中
Oracle的反向工程就是指将Oracle中的数据库,当然也可以是SQL Server中的数据库导入到PD中,这个需要建立一个数据库的链接,然后进行逆向工程的操作. 第一步:建立数据库的链接: Pow ...
- 在js中,ajax放在for中,ajax获取得到的变量有误
先看代码 for(var i=0;i<tds.length;i++){ mui.ajax(url+'api/client/gifts/isSigned', {data :{ sqId:" ...
- appium自动化测试(二)
一. 获取应用包名和入口activity 获取应用包名和入口activity:aapt命令 aapt目录: 安卓sdk的build-tools目录下(如果要在cmd里直接运行,要配置环境变量,否则需要 ...
- 转载 IOS开发之---static变量
Objective-C 支持全局变量 主要有两种实现方式: (1)第一种和C/C++中的一样, 使用"extern"关键词: (2)另外一种就是使用单例实现. (比如我们经常会把一 ...
- dga2
0e527eaf_5ec5_4623_9fe9_e459583acd72.com0fmgm1cuu7h1279dghgka0ltg.com0ydlanpuh4e2wl9h6udk6.com10uz8k ...
- mysql-5.7.17的最新安装教程
mysql-5.7.17-winx64是现在最新版本的Mysql,这是免安装的,所以要进行些配置 下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mys ...
- 数据库设计系列之四--ER图
逻辑设计是做什么? 1.将需求转化为数据库的逻辑模型 2.通过ER图的型式对逻辑模型进行展示 3.同所选用的具体的DBMS系统无关