`
mryufeng
  • 浏览: 982447 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

erlang节点间connect_all流程

阅读更多
The default when a connection is established between two nodes, is to immediately connect all other visible nodes as well. This way, there is always a fully connected network. If there are nodes with different cookies, this method might be inappropriate and the command line flag -connect_all false must be set, see erl(1).


从global.erl摘抄的...


%% Suppose nodes A and B connect, and C is connected to A.
%% Here's the algorithm's flow:
%%
%% Node A
%% ------
%% << {nodeup, B}
%%   TheLocker ! {nodeup, ..., Node, ...} (there is one locker per node)
%% B ! {init_connect, ..., {..., TheLockerAtA, ...}}
%% << {init_connect, TheLockerAtB}
%%   [The lockers try to set the lock]
%% << {lock_is_set, B, ...}
%%   [Now, lock is set in both partitions]
%% B ! {exchange, A, Names, ...}
%% << {exchange, B, Names, ...}
%%   [solve conflict]
%% B ! {resolved, A, ResolvedA, KnownAtA, ...}
%% << {resolved, B, ResolvedB, KnownAtB, ...}
%% C ! {new_nodes, ResolvedAandB, [B]}
%%
%% Node C
%% ------
%% << {new_nodes, ResolvedOps, NewNodes}
%%   [insert Ops]
%% ping(NewNodes)
%% << {nodeup, B}
%% <ignore this one>
%%

A和B之间先互相换信息,A告诉C有关B的信息, C会主动连接B的 这是在global模块实现的 而不是erts的一部分.

分享到:
评论
4 楼 mryufeng 2009-03-04  
你是对的!
3 楼 litaocheng 2009-03-04  
哦,我明白了,A和B之间确认,是不是用来确定B是否指定为connect_all false?
呵呵.如果是, 就不会返回给C了.
2 楼 mryufeng 2009-03-04  
哈哈 俺只是把有用的信息提供给大家看 形式就不重要 请大家原谅
1 楼 litaocheng 2009-03-04  
哦..这个要回头看看...
就爱老大贴E文....

相关推荐

    erlang语言实现binary_to_term完整代码

    erlang提供了binary_to_term 函数,用于把二进制数据转为原始的erlang数据。这个函数都是c实现的,这里用erlang语言实现了,很有参考价值,其他语言可以参考这个解析erlang二进制协议数据。配套文章地址...

    esl-erlang_23.0_windows_amd64.exe rabbitmq-server-3.8.4.exe

    esl-erlang_23.0和rabbitmq-3.8.4windows版本 直接下载安装就行,可以直接下载就可安装,非常的方便 ,欢迎大家下载 注意事项: 1. Erlang版本和RabbitMQ版本要配套 (Erlang23.0, RabbitMQ3.8.4) 2. amd芯片请乖乖...

    erlang节点连通测试

    例如,在节点A的启动命令行中添加`-connect_all false`参数,然后手动连接到中央节点`central_node@hostname`: ```bash erl -sname node_a -connect_all false -remsh central_node@hostname ``` 这样,节点A将...

    Erlang_x64_20.1

    Erlang_x64_20.1是Erlang OTP (Open Telephony Platform)的一个特定版本,专为64位Windows操作系统设计。 Erlang OTP是一个包含Erlang编译器、运行时系统、库和工具的完整平台。OTP提供了许多关键特性,如进程间...

    Erlang otp_src_20.3.tar.gz

    Erlang OTP 20.3 是一个针对Linux CentOS系统的软件包,主要为开发者提供了一个强大的并发和分布式计算环境。Erlang是一种静态类型的、函数式的编程语言,它以其在处理高并发、容错和实时系统方面的优秀表现而闻名。...

    erlang_otp_src_22.3.tar.gz

    5. **Distributed Erlang**:Erlang 支持跨多台机器的分布式计算,通过节点间通信协议实现集群间的进程交互。 在 `otp_src_22.3` 压缩包中,包含了 Erlang OTP 22.3 版本的源代码。要安装此版本,你可以按照提供的...

    esl-erlang_23.0_windows_amd64.exe

    这个erlang23.0版本,根据rabbitMQ官网的介绍,可以和下面这几个版本的rabbitMQ配合使用: 3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 其他版本的rabbit,请移步其他资源下载

    erlang otp_src_20.2.tar.gz

    Erlang OTP (Open Telephony Platform) 是一个用于构建高度并发、分布式和容错系统的软件框架,由瑞典的Ericsson公司开发。OTP提供了一个强大的编程环境,特别适合于实时通信系统和大规模网络应用。在本场景中,"otp...

    Erlang_win64_24.1.rar

    标题中的"Erlang_win64_24.1.rar"是指Erlang的64位Windows版,版本号为24.1.7。这个压缩包文件是专为在Windows操作系统上安装和运行Erlang而准备的,包含了所有必要的二进制文件和库,使得开发者可以在Windows平台上...

    最新版 erlang安装包 otp_src_21.3.tar.gz

    Erlang是一种强大的编程语言,尤其在分布式计算、并发处理和实时系统中有着广泛的应用。OTP(Open Telecom Platform)是Erlang的核心组件,提供了一系列的库和设计原则,用于构建可靠、可扩展的系统。在Linux CentOS...

    分布式应用Erlang:Erlang_OTP_19_win64

    Erlang节点可以在不同的机器上运行,并通过简单的名称解析进行通信。这种分布式的特性使得构建跨多台服务器的集群变得简单,从而实现负载均衡和故障恢复。在Erlang OTP中,分布式数据库Mnesia也提供了强一致性和高...

    esl-erlang_23.0.2-1_centos_7_amd64.rpm

    erlang_23.0.2-1版本 centos7 64bit esl-erlang_23.0.2-1_centos_7_amd64.rpm

    erlang_otp_win64_25.0

    在"erlang_otp_win64_25.0"这个标题中,我们可以提取出几个关键点: 1. **Erlang**:这是一种函数式编程语言,以其在处理并发性和容错性方面的强大能力而闻名。Erlang的设计理念是让程序员能够轻松地构建能够并行...

    erlang_win64_22.0+rabbitmq3.8.2.rar

    标题中的"erlang_win64_22.0"指的是Erlang OTP(Open Telecom Platform)的第22.0版本,这个版本是为64位Windows操作系统设计的。OTP是Erlang的核心库,包含了大量用于构建可靠系统和网络服务的模块。 描述中提到,...

    Erlang 安装包(otp_win32_R16B03-1.part2)

    Erlang 安装包(otp_win32_R16B03-1.part2)

    Erlang-win64_20.1

    一旦Erlang安装成功,你就可以继续安装RabbitMQ,并开始使用这个强大的消息中间件来实现应用间的异步通信和解耦。 在Erlang的20.1版本中,开发者可能会遇到一些关键的更新和改进,比如更好的性能、新的编程特性以及...

    Erlang_win64_24.2 64位 rabbitmq 必要环境

    标题“Erlang_win64_24.2 64位 rabbitmq 必要环境”暗示了我们讨论的是Erlang的特定版本——24.2,用于64位Windows操作系统,并且是运行RabbitMQ所必需的环境。RabbitMQ是一款开源的消息代理和队列服务器,它使用...

    otp_Erlang_win64_22.1下载地址.txt

    otp_win64_22.1的官方地址下载太慢,共享一下otp_Erlang_win64_22.1百度云下载地址

    Erlang_B_model.rar_Erlang B _Erlang B model_Wireless Handbook_e

    在这个压缩包中,我们有一个名为"Erlang_B_model.pdf"的文件,它很可能是这样的手册的一部分,提供了关于Erlang B模型的理论、公式以及查表方法。 **Erlang B公式**表达了一个服务系统(如电话交换机)在固定数量的...

    Erlang_win64_22.2.exe

    RabbitMQ为了搭建运行环境,erlang的官网下载实在太慢,当前最新版本提交到这里提供给大家和自己下载,Erlang_win64_22.2

Global site tag (gtag.js) - Google Analytics