`
zdx3578
  • 浏览: 95653 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

erlang 分布式控制

阅读更多

测试记录:

 

 

zdx@couchdb:~$ erl -sname 1 -setcookie 123
Erlang R13B03 (erts-5.7.4) [source] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
(1@couchdb)1> nodes().
[]
(1@couchdb)2> net_adm:ping(2).
** exception error : no function clause matching net_adm:ping(2)
(1@couchdb)3> node().
'1@couchdb'
(1@couchdb)4> nodes().
[]
(1@couchdb)5> net_adm:ping(2@couchdb).
* 1: syntax error before: '@'
(1@couchdb)5> net_adm:ping('2@couchdb').
pong
(1@couchdb)6> nodes().
['2@couchdb']
(1@couchdb)7>
User switch command
 -->
 --> j
   1* {shell,start,[init]}
 --> j
   1* {shell,start,[init]}
 --> h

 --> s
 --> s shell
 --> s [shell]
Unknown command
 --> s shell
 --> j
   1  {shell,start,[init]}
   2  {shell,start,[]}
   3  {shell,start,[]}
   4* {shell,start,[]}
 --> j
   1  {shell,start,[init]}
   2  {shell,start,[]}
   3  {shell,start,[]}
   4* {shell,start,[]}
 --> c 2
Eshell V5.7.4  (abort with ^G)
(
 --> j
   1  {shell,start,[init]}
   2* {shell,start,[]}
   3  {shell,start,[]}
   4  {shell,start,[]}
 --> c 2

(1@couchdb)2> nodes().
['2@couchdb','3@couchdb']
(1@couchdb)3>
net_adm:ping('4@couchdb').
pong
(1@couchdb)4> nodes().
['2@couchdb','3@couchdb','4@couchdb']

(1@couchdb)5>

 

 

 

 

zdx@couchdb:~$ erl -sname 2 -setcookie 123
Erlang R13B03 (erts-5.7.4) [source] [rq:1] [async-threads:0] [hipe] [kernel-poll                                              :false]

Eshell V5.7.4  (abort with ^G)
(2@couchdb)1> nodes().
['1@couchdb']
(2@couchdb)2>
User switch command

 --> j
   1* {shell,start,[init]}
 --> j
   1* {shell,start,[init]}
 --> c 1

(2@couchdb)2> nodes().
['1@couchdb']

(2@couchdb)3>
User switch command
 --> r '1@couchdb'
 -->  r '1@couchdb' shell
 --> j
   1  {shell,start,[init]}
   2  {'1@couchdb',shell,start,[]}
   3* {'1@couchdb',shell,start,[]}
 --> c 2
Eshell V5.7.4  (abort with ^G)
(1@couchdb)1>

 

 

zdx@couchdb:~$ erl -remsh '1@couchdb' -sname 3 -setcookie 123
Erlang R13B03 (erts-5.7.4) [source] [rq:1] [async-threads:0] [hipe] [kernel-poll                                              :false]

Eshell V5.7.4  (abort with ^G)
(1@couchdb)1 > G
(1@couchdb)1>
User switch command
 -->

 --> j
   1* {'1@couchdb',shell,start,[]}

 -->

 

 

 

 

 

(1@couchdb)4> nodes().
['2@couchdb','3@couchdb','4@couchdb']
(1@couchdb)5>
User switch command
 --> j
   1  {shell,start,[init]}
   2* {shell,start,[]}
   3  {shell,start,[]}
   4  {shell,start,[]}

 --> r 4@couchdb
Unknown command

 --> r '4@couchdb'
 --> j
   1  {shell,start,[init]}
   2  {shell,start,[]}
   3  {shell,start,[]}
   4  {shell,start,[]}
   5* {'4@couchdb',shell,start,[]}
 --> c 5
Eshell V5.7.4  (abort with ^G)
(4@couchdb)1>

 

 

 

zdx@couchdb:~$ erl -sname 4 -setcookie 123 -detached
zdx@couchdb:~$ erl -setcookie 123
Erlang R13B03 (erts-5.7.4) [source] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> nodes().
[]
2> net_adm:ping().
** exception error: undefined function net_adm:ping/0
3> net_adm:ping('1@couchdb').
pang
4> nodes().
[]
5> net_adm:ping('nonode@nohost').
pang
6>

分享到:
评论
1 楼 zdx3578 2012-02-02  
首先需要将虚拟机的名字改好,各种能想到的地方都需要改好,包括本地的和dns中的
好像还需要在exchange那边配置写什么东西才可以让新的linux上的p3s节点连接进去
防火墙中打开4369端口供epmd通信用,据说tcp、udp都要打开
从其他linux机器上将原文件copy过来,切记要按照原linux上的路径建立文件夹,包括建立log、db、queue文件夹,因为我忘了是否会自动建立,所以还是自己手工建起来
在程序路径下有sbin/p3s节点的启动脚本,启动后是在后台运行的,可以通过ps等方式,或者可以想到的方式查看是否成功起来
sbin目录中还有个manage的管理节点,他可以用来管理在后台运行的节点。
将mangae节点起来后,按ctrl+g键可以进入一种不知道叫什么的控制界面
使用r ‘p3s@XXXX'可以创建一个新的shell
使用j命令可以查看当前有哪几个shell
使用c 【shell的序号】就可以attached到需要控制的那个shell中
attached进去后对于新的p3s节点要先将自己添加到集群中
然后copy一些数据库过来包括schema、sq_pending_queue、sq_sending_queue等等
然后再手工启动sq_p3s:start().
正确起来后再使用ctrl+g回到原先的控制界面中
j查看shell序列号,使用k 【shell序列号】将先前用r创建的shell杀掉
然后连接回manage的shell,q()退出manage节点
顺利的话这些步骤应该就能完成启动目的

我原先在sq_utils里边还是哪个文件里边写了个可以设置p3s最大允许处理的任务数的函数,具体名字我不太记得了
查看一些应该就能知道Linux下边设置为16个或者32个,暂时不要设置的太大了,以免有什么问题

smtp节点还没有在linux上成功工作过,这似乎是个隐患

相关推荐

    Erlang并发编程,Erlang程序设计,Erlang中文手册

    最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适 合于构建分布式,实时软并行计算系统。 使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。...

    Python-inetsshdist一个运行在ssh上的Erlang发行版网络协议

    `Python-inetsshdist` 是一个独特的项目,它允许Erlang节点通过安全的Shell (SSH) 协议进行通信,从而扩展了Erlang分布式计算的能力。Erlang是一种面向并发的编程语言,其分布式特性使得在多节点间进行高效、可靠的...

    erlang服务器集合

    Erlang是一种面向并发的、函数式编程语言,特别适合构建高可用性、分布式系统。这个“erlang服务器集合”包含了多个项目,主要围绕`openpoker`和`英雄远征`游戏服务器的源代码,为深入理解Erlang在大规模并发环境下...

    erlang深度分析.pdf

    以上总结了Erlang深度分析的主要知识点,涵盖了虚拟机、性能分析、编码实践、分布式系统开发、内存管理、高可用性设计、网络通信、热部署、并发模型、本地接口设计、系统监控以及社区资源等多个方面。这些知识能够...

    erlang programming

    7. **并发性能优化**:Erlang的并发性能优化涉及进程数量的控制、消息队列管理以及合理分配系统资源。这通常需要对Erlang的VM(Virtual Machine)和调度器有深入理解。 8. **Erlang与其他技术的集成**:Erlang可以...

    erlang资源

    1. **Erlang语法**:涵盖基本的变量、数据类型(如原子、列表、元组和二进制)、控制结构(如case表达式和if语句)以及函数定义。 2. **函数式编程概念**:Erlang是纯函数式语言,书中可能会介绍函数式编程的基本...

    Erlang程序设计(第2版)1

    【Erlang程序设计(第2版)】是由Erlang之父Joe Armstrong撰写的一本经典著作,专注于介绍Erlang编程语言在并发、分布式和容错系统中的应用。本书适用于初学者和有一定经验的Erlang程序员。作者在书中讨论了如何利用...

    英雄远征erlang源码

    Erlang是一种并发性极强、容错性好的函数式编程语言,常用于构建高可用性的分布式系统,尤其在实时通信和大规模并发场景下表现优异。 【描述】:“英雄远征服务器端erlang源码,用mysql数据库”意味着该源码中包含了...

    erlang 深度分析

    Erlang分布式核心技术浅析 - **关键技术**: - **节点间通信**: 通过分布协议实现节点间的高效数据交换。 - **故障恢复**: 利用监控和链接机制来检测和处理故障。 - **集群管理**: 支持节点动态加入和离开。 - **...

    erlang及其应用

    Erlang的特点使其特别适合构建分布式、可靠且具有软实时性的并发系统,如电话交换控制系统、互联网应用服务器(如邮件传输代理、IMAP-4服务器、HTTP服务器或WAP堆栈)、移动网络中的移动性处理、统一消息服务等。...

    Erlang Programming 导读.pdf

    - **分布式系统**: Erlang 的 OTP 库提供了一套完整的框架,用于构建分布式的、容错的系统。 - **实时系统**: Erlang 的响应时间和稳定性非常适合实时监控系统、物联网设备管理等场景。 #### 五、学习建议 - **...

    erlang趣学指南

    Erlang是一门专为构建并发、容错的分布式系统而设计的编程语言,最早由瑞典电信设备公司爱立信所开发。其关键特性包括轻量级进程、消息传递、容错机制以及一个用于构建可靠系统的函数库和中间件,统称为Open Telecom...

    erlang聊天室源码

    Erlang是一种面向并发的编程语言,因其在分布式系统和高可用性服务中的出色表现,常被用于构建消息队列如RabbitMQ这样的项目。本篇将深入探讨一个基于Erlang实现的简单聊天室源码,帮助初学者理解Erlang在构建实时...

    基于erlang的文件存储

    本项目“基于Erlang的文件存储”就是这样一个尝试,它利用Erlang强大的并发处理能力和分布式特性,为服务端提供稳定的基础架构,而客户端则通过Java的Swing组件提供用户友好的交互界面。以下是对该项目中涉及的技术...

    erlang 程序设计 源码

    Erlang是一种面向并发的、动态类型的编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在深入理解Erlang程序设计的源码之前,我们需要了解Erlang的一些核心概念和特性。 1. **并发性**:Erlang的并发...

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

    Erlang是一种面向并发的、函数式编程语言,特别适合于构建高可靠性、分布式系统,尤其是在游戏开发领域中表现出色。这份"Erlang游戏程序学习完整PDF手册"是一份全面介绍Erlang在游戏开发中应用的学习资料,包含了...

    erlang 中文,chm参考文档

    1. **基础**:讲解Erlang的基本数据类型、表达式、控制结构等。 2. **模块和函数**:介绍如何定义模块,编写函数,以及函数的调用规则。 3. **进程和通信**:深入解析Erlang的并发模型,包括进程的创建、通信方式...

    erlang高级原理和应用PPT

    9. **开发工具与实践**:Erlang的开发环境如Eclipse插件(ErlyDTL)、文本编辑器集成、Git版本控制,以及测试框架如eunit和CT(Common Test)。 综上所述,这份PPT将为学习者提供一个深入了解Erlang高级特性和实际...

    Erlang程序设计及源码

    对于初学者,可以通过阅读《Erlang程序设计》这本书了解基本语法、数据类型、控制结构、模式匹配以及Erlang的并发特性。同时,结合源码分析,可以提升实战能力。 总之,这份资源为Erlang初学者提供了全面的学习...

    Erlang高级应用和原理

    Erlang的代码质量受到严格的控制,通过cover工具可以实现100%的代码覆盖率,从而确保高可靠性。此外,扩展Erlang应用非常容易,通过添加更多的CPU,性能可以线性增长。 Erlang的分布式和集群特性使其在大规模系统中...

Global site tag (gtag.js) - Google Analytics