选择用于实现分布式消息传递算法的编程语言

2024-03-11

基本上,我想实现以下算法并分析使用这些算法构建的系统在不同条件下的行为。

  • 八卦协议
  • 多个paxos
  • 一致的散列

我的兴趣在于这些算法。我基本上是在寻找一种编程语言,可以让我快速编写这些算法并深入理解这些算法。

我应该选择哪种语言? Java、Scala、Erlang 或其他任何东西。

目前,我了解 Java 和 C++。


您可以尝试在 Erlang 中实现协议。

  • 进程通信非常优雅地融入到语言和虚拟机中。两个 elrang 进程之间的异步消息传递,无论是在同一 VM 中还是在语义上等效的跨 VM。
  • 在 erlang 中,算法的容错方面/重试逻辑等方面的编码是轻而易举的。将所有内容封装到轻量级进程中,并使用称为主管的特殊进程来重新启动它们。
  • 序列化 Erlang 对象非常简单。您不必显式编码序列化逻辑(例如在 Java 中实现 Serialized)。
  • Erlang 发行版附带了一个名为rpc http://www.erlang.org/doc/man/rpc.html它允许您调用远程虚拟机上的功能。
  • Elrang shell 是真正的天赐之物。您可以将 shell 附加到任何远程虚拟机。 shell 允许您分析内部表/数据结构。该虚拟机还具有极其复杂的调试和跟踪功能,您可以通过 shell 来使用这些功能。
  • 你可以看一下Riak http://wiki.basho.com/, an 开源 https://github.com/basho/riak用 Erlang 编写的 NoSQL 数据存储,模仿 Amazon 的 Dynamo。它实现了一致性哈希和 Gossip 协议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择用于实现分布式消息传递算法的编程语言 的相关文章

随机推荐

  • 如何从 Spark 堆中删除/处置广播变量?

    要广播变量以使变量在集群上每个节点的内存中只出现一次 可以执行以下操作 val myVarBroadcasted sc broadcast myVar 然后在 RDD 转换中检索它 如下所示 myRdd map blar gt val my
  • Javascript中的累积分布函数

    我正在寻找一种在 Javascript 中计算累积分布函数的方法 有没有实现这个的类 您有想法让它发挥作用吗 它不需要 100 准确 但我需要对其值有一个很好的了解 http en wikipedia org wiki Cumulative
  • 如何将视图放入 Bundle

    我将动态创建的 EditText 添加到布局 onClick 按钮方法 当我旋转屏幕时 添加的编辑文本消失 如何将它们添加到捆绑包中以将它们放入 onSavedInstanceState 方法中 或者 还有其他方法可以做到这一点吗 我知道我
  • 使用 dplyr 中转换后的数据替换 SQL 数据库表

    我经常在 dplyr 中转换数据时替换数据 尤其是在处理大型数据集时 当我使用 SQL 支持的数据集时 我不知道如何优雅地做到这一点 至少不是使用 SQLite 我在 dplyr DB vignettes 或 SO 中找不到任何关于这个目标
  • 将 CameraX 捕获的 ImageProxy 转换为位图

    我正在使用 CameraX 并且很难将捕获的 ImageProxy 转换为位图 经过搜索和尝试 我制定了解决方案 后来我发现这不是最佳的 所以我改变了设计 这迫使我放弃了工作时间 由于我 或其他人 将来可能需要它 我决定在这里发布一个问题并
  • 有效的不可变对象有意义吗?

    在书里Java 并发实践 http jcip net 它解释了 有效不可变 对象与可变对象并发方面的优势 但它并没有解释 有效地不可变 对象将提供什么优势really不可变的对象 我不明白 你不能吗always在您决定安全地发布 有效不可变
  • Rails ActiveRecord:使用 LEFT JOIN 而不是 INNER JOIN 进行连接

    我有这个代码 User find all limit gt 10 joins gt user points select gt users count user points id group gt user points user id
  • 具有依赖项初始化错误的自定义包:ModuleNotFoundError 或 ImportError

    我正在创建一个具有以下结构的自定义包 test package README md setup py my package my package py init py tests tests py 我的包依赖于 pygdbmi 因此我将其添
  • 在 Windows 上设置 Apache 虚拟主机

    如何在 Windows 上为多个域名设置虚拟主机 我将把它用于我自己的测试项目 我需要设置三个项目 目前我正在使用 xampplite 作为可移植的 Apache www foo bar com http www foo bar com g
  • 使用 Spring Profiles 运行 gradle 任务(集成测试)

    需要通过 gradle 使用 spring 配置文件运行测试 gradle clean build 我添加了任务 task beforeTest doLast System setProperty spring profiles activ
  • __attribute__((constructor)) 调用顺序混乱

    答案here https stackoverflow com questions 8433484 c static initialization vs attribute constructor表明 attribute constructo
  • 如何在 rmarkdown Rmd 文件中包含摘要

    In a Rmd文件的标题如下 我想包含一个摘要 所以我尝试了标准的 LateX 文章形式 abstract This paper explores a variety of topics related to the question o
  • 我可以在本地主机环境上测试 shibboleth IdP 和 SP 吗?

    我可以在本地主机环境上测试 shibboleth IdP 和 SP 吗 我只有一台电脑 Win7 Yes你当然可以 在该计算机中下载并安装 SP 和 idP 配置两者的元数据以与本地主机通信 或者为了更好地轻松使用 SP 和 idP 的两个
  • 如何在 Visual Studio 2019 中自动添加分号到行尾

    我的问题类似于如何在 Visual Studio 代码中在行尾添加分号 https stackoverflow com questions 30118344 how to add semicolon to the end of the li
  • 如何以编程方式设置或清除 32BIT 标志?

    编译时 我总是将其设置为 Any CPU 然而 有些客户没有所需二进制文件的 64 位版本 即使在 x64 系统上运行也是如此 在这些情况下 我要求他们使用 corflags exe 32BIT 选项修改我的二进制文件 http msdn
  • 在 Racket 源代码中选择学生语言

    我正在尝试为 DrRacket 编写一个源文件 指定其中一种语言如何设计教学语言的程序 see 球拍文档 http docs racket lang org drracket htdp langs html 我知道我可以在 DrRacket
  • Android 上符合 OpenGL-ES 2.0 所需的最小纹理大小?

    某个硬件是否需要支持最小纹理尺寸才能符合 OpenGL ES 2 0 规范 GL MAX TEXTURE SIZE 值必须至少为 1024 或 2048 或类似的值 我想知道这一点的原因是因为我正在研究使用着色器的东西 因此必须是 Open
  • 通过 Selenium Grid 运行 Selenium IDE 测试

    首先我应该说 我感到遗憾和痛苦noob 但我正在努力改变这一点 我不懂任何编程语言 但通过做足够的研究来完成我需要完成的任何工作 从而成功地 让事情发生 不管怎样 我一直在使用 Selenium IDE 创建 Selenium 测试 但在通
  • MySQL PHPMyAdmin 错误 #1062 - 键“PRIMARY”重复条目“0”

    现在我想添加一个主键id列 但它抛出错误 1062 密钥 PRIMARY 重复输入 0 我已经尝试过这个 向现有表添加主键 https stackoverflow com questions 11794659 add primary key
  • 选择用于实现分布式消息传递算法的编程语言

    基本上 我想实现以下算法并分析使用这些算法构建的系统在不同条件下的行为 八卦协议 多个paxos 一致的散列 我的兴趣在于这些算法 我基本上是在寻找一种编程语言 可以让我快速编写这些算法并深入理解这些算法 我应该选择哪种语言 Java Sc