Erlang集群

2024-01-28

我正在尝试使用 Erlang 作为将所有组件粘合在一起的粘合剂来实现一个集群。我喜欢它创建一个完全连接的节点图的想法,但在在线阅读不同的文章后,似乎这不能很好地扩展(最多有 50 - 100 个节点)。 OTP 的开发者是否故意施加此限制?我确实知道您可以将节点设置为仅具有显式连接以及隐藏节点等。但是,默认的开箱即用设置似乎不太可扩展。

那么对于问题:

  1. 如果您有 5 个节点(A、B、C、D、E),它们都具有显式连接,例如 A-B-C-D-E。 Erlang/OTP 是否允许 A 直接与 E 对话,还是 A 必须从 B 通过 D 传递消息才能到达 E,这就是全连接图的原因?再说一遍,这是有道理的,但从我所看到的来看,它并不能很好地扩展。

  2. 如果要尝试建立一个可扩展且容错的系统,您有哪些选择?似乎,如果由于节点太多而无法创建完全连接的图,那么下一个最好的办法就是创建某种树。但是,这似乎不太容错,因为如果根节点或子节点的任何父节点死亡,您将丢失集群的很大一部分。

  3. 在研究主管和工作人员时,我看到的所有示例都将其应用于单个节点上的进程。它可以应用于节点集群来帮助实现容错吗?

  4. 节点可以属于多个集群吗?

感谢您的帮助,如果我错过了半新的网站或博客文章(大约 1 年前),我很乐意查看它们。但是,我已经在互联网上进行了很好的搜索。


  1. 是的,您可以将消息发送到集群中任何远程节点上的进程,例如,通过使用其进程标识符 (pid)。这称为位置透明性。是的,它的扩展性很好(参见 Riak、CouchDB、RabbitMQ 等)。

  2. 请注意,一个节点可以运行数十万个进程。 Erlang 已被证明具有很强的可扩展性,并且是为容错而构建的。还有其他方法可以建造更大的建筑,例如CloudI 的 SOA 方法(参见评论)。您还可以构建使用的集群隐藏节点 http://www.erlang.org/doc/reference_manual/distributed.html#id83017如果你真的really需要。

  3. 在节点级别,您将采取不同的方法,例如,构建相同的节点,这些节点在发生故障时很容易替换,并且工作由其余节点接管。看看 Riak 如何处理这个问题(看看riak_core并查看博客文章Riak 核心简介 http://basho.com/blog/technical/2010/07/30/introducing-riak-core/).

  4. 节点可以离开和进入集群,但不能同时属于多个集群。连接的节点共享一个集群 cookie,用于识别连接的节点。您可以在虚拟机运行时设置 cookie(请参阅分布式Erlang http://www.erlang.org/doc/reference_manual/distributed.html).

Read http://learnyousomeerlang.com/ http://learnyousomeerlang.com/为了更大的利益。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Erlang集群 的相关文章

  • 停止 Erlang 守护进程

    除了跑步 killall 9 beam smp 当我知道 Erlang 节点的情况时 如何以编程方式杀死它 sname 如果我不希望心跳监视器重新启动该进程 如何确保上述问题的任何答案也会终止心跳 有没有一个不错的指南来将 Erlang 部
  • 集群应用程序服务器中的 JMS 主题订阅者如何接收消息?

    假设我创建了一个带有一个订阅者 PropertiesSubscriber 的 JMS 主题 PropertiesTopic PropertiesSubscriber 运行在负载平衡的应用程序服务器集群中 如下图所示 替代文本 http ww
  • Docker 容器中的 LDAP 身份验证

    默认情况下 当Docker容器启动时 里面的用户是sudo I want 默认情况下将 sudo 用户锁定在容器中 在容器中使用 LDAP 身份验证而不是默认身份验证 当用户与映像一起提供时 或者在容器运行时由 sudo 用户创建 为此 我
  • Erlang 应该如何处理通用数据?

    假设我正在使用 Erlang 构建游戏服务器 每个用户检查某些内容 例如找到最近的玩家 是很常见的 因此通常有一个管理器类 在上面的例子中 我们使用互斥锁 据我所知 Erlang 通常会为每个 TCP 连接 用户会话 创建新的 Erlang
  • 将大型 CSV 加载到 Google BigQuery 时出错

    将大型 CSV 加载到 bigquery 时出现错误 我在网上阅读的所有地方都发现压缩文件有 5GB 大小限制 但 CSV 没有限制 加载操作中的 BigQuery 错误 处理作业 bqjob r3016bbfad3037f 0000015
  • 应用程序开发的云与服务器[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 与普通服务器设置相比 使用云服务有哪些好处 假设我可能会从分布式服务器设置 云 和可能的成本中受益 但是 如果不使用云服务 我真的会错过任何功能
  • 将网站部署到云服务的最佳实践

    在云服务上部署多个网站的最佳实践是什么 我有三个网站 是否可以将这三个网站部署到一个云服务中 一个云服务三个实例 或者我是否必须创建三个云服务并单独部署每个网站 谢谢 我的服务定义文件
  • Windows Azure 实例到底是什么? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在 Windows Azure 门户上 截至 2013 年 1 月 当我将 Windows Azure 网站实例从 1 扩展到 6 时 我会得到什么
  • 连接到 Apache Kafka 多节点集群中的 Zookeeper

    我按照以下说明设置了多节点 kafka 集群 现在 如何连接到zookeeper 是否可以从 JAVA 中的生产者 消费者端仅连接到一个 ZooKeeper 或者是否有一种方法可以连接所有 ZooKeeper 节点 设置多节点 Apache
  • Erlang 中的非终止函数类型

    我正在学习 Erlang 并尝试使用 Dialyzer 在可能的情况下获得最大的类型安全性 有一点不太明白 什么是类型非终止的函数以及如何表示它 spec 有人能解释一下吗 永远循环且永不终止的函数具有返回类型no return 该返回类型
  • 不断收到错误消息,表示 localhost 的 Server App Engine Standard 无法启动

    当尝试在 Eclipse 中启动 Google 应用程序引擎项目时 我不断收到错误消息 指出本地主机上的服务器应用程序引擎标准无法启动 错误日志如下 以前有人遇到过这个问题吗 问题的原因是什么 WARNING An illegal refl
  • 如何从 S3 中的 zip 存档中提取文件

    我在 S3 的某个位置上传了一个 zip 存档 例如 foo bar zip 我想提取 bar zip 中的值并将其放在 foo 下 而不下载或重新上传提取的文件 我怎样才能做到这一点 以便 S3 被视为非常像文件系统 S3 的设计初衷并不
  • Erlang:binary_to_atom 填充atom 表空间安全问题

    我听说 Erlang 中的原子表可能会被填满 从而使系统对 DDoS 开放 除非您增加可以创建的原子数量 看起来 binary to existing atom 2 就是这个问题的解决方案 谁能准确解释一下如何是否存在安全隐患以及如何解决这
  • 在Erlang中,是否可以将正在运行的进程发送到不同的节点?

    我一直在研究移动代理 并且想知道是否可以将正在运行的进程发送到 erlang 中的另一个节点 我知道可以向另一个节点上的进程发送消息 我知道可以在集群中的所有节点上加载模块 是否可以将特定节点上可能处于某种状态的进程移动到另一个节点并恢复其
  • 乔斯基与 ScaLAPACK

    我正在尝试通过进行 Cholesky 分解pdpotrf https software intel com en us node 521465MKL Intel 的库 它使用 ScaLAPACK 我正在读取主节点中的整个矩阵 然后像这样分配
  • Erlang:有“epmd”的 API 吗?

    有没有办法查询 epmd 守护进程管理的名称表 The nodes 函数在这方面不是很有帮助 注意 我正在寻找 APIaside解析通过 stdout 生成的输出 要查询 epmd 可见的节点 请调用 EpmdModule net kern
  • 调用函数时Erlang“未绑定变量”

    我正在尝试将整数参数 N 传递给cake并返回一个大小为 N 的 2 的平方列表 为了示例 例如面包店 蛋糕 3 gt 4 4 4 这是我到目前为止所做的尝试 module bakery export cake 1 Foo fun X gt
  • 不要覆盖 Azure Blob 存储

    我有一种将文件添加到 Azure Blob 存储的方法 问题是我试图指定一个条件 在该条件下它不会覆盖 blob 而只是添加到其中 我正在尝试使用参数访问条件 但是 VS 说这个方法不能采用两个参数 async void archiveNe
  • RabbitMq 和“致命错误:握手失败 -handshake_decode_error”

    我正在使用 Windows Server 2012 Erlang 19 2 和 RabbitMq 3 6 6 我在使用 TLS 配置端点之间的连接时遇到问题 我已经尝试了所有关于 SO 的答案 以及所有 RabbitMq 文档here ht
  • 同一区域内但属于不同账户的AWS数据传输费用如何?

    如果 S3 gt EC2 或 EC2 gt EC2 位于同一 AWS 区域 则数据传输费用似乎是免费的 S3价格注意事项 您需要为进出 Amazon S3 的所有带宽付费 except对于以下情况 当Amazon Elastic Compu

随机推荐

  • VBA XML 解析 - 循环子节点

    这是我第一次尝试使用 VBA 解析 XML 文件 因此我可能会遗漏一些显而易见的内容 我已经可以打印这个
  • 如何调试使用 rebar3 时运行的 Eunit 测试套件?

    我创建了一个release带有 rebar3 beta 4 的应用程序 添加了一些 eunit 测试并编写了一些代码 现在我必须调试一个测试用例 看看我必须添加什么才能使实现正常工作 我找到了一些关于使用的文章dbg从 Erlang 控制台
  • @property 和 @synthesize

    我对 Objective C 很陌生 两天了 当读到关于 synthesize 好像和我的理解有重叠 property 我以为我理解了 所以 一些细节需要在我的脑海中解决 这让我烦恼 如果我对差异的理解有误 请纠正我 property an
  • C# + 运算符调用 string.concat 函数? [复制]

    这个问题在这里已经有答案了 可能的重复 C 是否优化字符串文字的串联 https stackoverflow com questions 288794 does c sharp optimize the concatenation of s
  • AngularJS 中文本框更改时延迟调用函数

    似乎无法通过谷歌搜索如何完成此操作的示例 我已经成功创建了一个文本框 每次更改时都会调用一个函数 我想做的只是当用户停止输入 x 毫秒时才调用该函数 我知道如何使用 keyup 事件在 JQuery 中执行此操作 并且可能可以使其以这种方式
  • 使用 VSCode 创建并运行 Dart 控制台应用程序?

    我可以使用 VSCode 创建 Flutter 新应用程序 现在我想学习Dart编程语言 如何使用 VS Code 创建并运行 Dart 控制台应用程序 有一种简单的方法可以创建和运行 Dart 控制台应用程序 打开 VSCode 在 Ma
  • 将 Pandas DataFrame 写入换行符分隔的 JSON

    我首先通过 pandas read csv 函数将 CSV 读入 Pandas 数据帧 现在数据位于实际的数据框中 我尝试编写如下内容 for row in df iterrows row 1 to json path to file 这是
  • 在 MATLAB 中添加包围向量中 1 的其他值的附加值

    给定 MATLAB 中的零和一向量 其中零代表时间事件 我想在现有向量之前和之后添加额外的向量 以捕获额外的变化 Example 我想转 0 0 1 0 0 into 0 1 1 1 0 where 1 是新添加的 假设A为输入列向量 Fi
  • 根据位置重新排序行 SQL Server

    我在 SO 上看到了很多关于这个问题的问题 但没有一个与我的场景相关 除了基本的 CRUD 操作之外 我还算不上一个 SQL 专家 因此我对此很坚持 我有一张桌子 myTable rID newsID OrderPosition where
  • 在 Spark 中保存有序数据帧

    我正在尝试将有序数据帧保存到 HDFS 中 我的代码如下所示 dataFrame orderBy index write mode SaveMode Overwrite parquet getPath 我在两个不同的集群上运行相同的代码 一
  • 如何在 PHPUnit 测试中显示底层测试方法?

    我有测试套件 里面有很多测试 这是一个中等大小的 ok 4 CommodityBasketTest testStartsOutEmpty ok 5 CommodityBasketTest testCanAddACommodity ok 6
  • 为什么不应该使用 F# 异步工作流程来实现并行性?

    我最近一直在学习 F 对其轻松利用数据并行性特别感兴趣 这data gt Array map gt Async Parallel gt Async RunSynchronously习语似乎很容易理解 易于使用并从中获得真正的价值 那么为什么
  • 如何将 git 存储库设置为只读?

    我有一些通过 SSH 远程访问的 git 存储库 我想将其中一些设置为只读以防止更多推送 有些人有指向这些存储库的遥控器 这些裸存储库已初始化 shared group 那么将所有文件的文件权限设置为 660 是否足以仍然允许 SSH 访问
  • 如何在 python 中转义正斜杠,以便 open() 将我的文件视为要写入的文件名,而不是要读取的文件路径?

    让我先说我是不太确定我的代码发生了什么 我对编程相当陌生 我一直在为我的 python CS 课程创建一个单独的最终项目 该项目每天检查我老师的网站 并确定自上次程序运行以来他是否更改了他网站上的任何网页 我现在正在执行的步骤如下 def
  • 如何解决Sonar错误:无法加载组件类org.sonar.scanner.scan.ProjectLock

    我在 netbeans 项目上运行 Sonar 时遇到一些问题 它不起作用 我有以下错误 C Users remy fischer Desktop NetBeansProjects NetBeansProjects BinPacking s
  • Xcode 项目在文档大纲中显示为灰色

    我一直在使用 iCloud 将我正在处理的 Xcode 项目从笔记本电脑 同步 到桌面 不幸的是 它似乎运作得不太好 我今天在台式机上打开了一个昨天在笔记本电脑上工作的项目 If I open the file on the desktop
  • 使用 jQuery 获取 ListBox 中选定项目的数量

    如主题中所述 当用户选择新项目时 如何使用 jQuery 获取 ListBox 中选定项目的计数 我有这些代码 Html ListBoxFor x gt Model StatesID Model States new class chzn
  • 十进制小时变成时间?

    我在数据库中有一个小时字段 例如 1 4 1 5 1 7 我需要将其转换回 HH MM 做到这一点最简单的方法是什么 TimeSpan FromHours http msdn microsoft com en us library syst
  • HttpSessionListener 不起作用

    我已经实现了 HttpSessionListiner 但它不起作用 用调试器检查 输入 servlet 后创建新会话 登录后 JSESSION ID 发生变化 但 session getCreateTime 保持不变 会话保持不变 使用注释
  • Erlang集群

    我正在尝试使用 Erlang 作为将所有组件粘合在一起的粘合剂来实现一个集群 我喜欢它创建一个完全连接的节点图的想法 但在在线阅读不同的文章后 似乎这不能很好地扩展 最多有 50 100 个节点 OTP 的开发者是否故意施加此限制 我确实知