bar*_*mac 12 java scala distributed-computing distributed-transactions akka
我见过的Akka演员的大部分用例都是高性能的多核服务器或本地集群.
我很好奇它适用于更远程的高延迟和高度失败的群体结构,如p2p网络.
我想到的应用程序将有关于群集节点的可信性和/或资源丰富性的规则,给予它们一些状态,就像bittorrent一样.它还需要能够尽可能地在整个群体中传播交易,但最终或部分一致性是可以接受的.可伸缩性比一致性更重要.
AKKA是建立这样的东西的潜在解决方案吗?它会比其他方法有任何特定的优点或缺点.
在这种情况下使用 Akka 的主要问题是 Actor 系统没有适合这种去中心化分布式计算的适当的可扩展的成员管理系统。
您需要能够处理您在场景中描述的节点流失的东西。特别是,您需要能够监视节点何时加入、离开以及因故障而被假定死亡和断开连接的东西。我建议看看宜必思:http://www.cs.vu.nl/ibis/以及基于八卦的注册表。您仍然需要一个众所周知的引导节点来启动系统,但除此之外,Ibis 使用的加入、选择、离开模型将在与基于 Gossip 的注册表结合使用时提供您所寻求的可扩展性。该系统在某种程度上类似于 Akka actor,因为它基于向上或向下调用的系统以及用于传递消息的单向管道。一旦你掌握了分布式的东西,就很容易对它进行编程。
就最终一致性而言,这是大型分布式环境中的一个已知难题。我需要更多地了解您想要分发的交易类型以及在那里提出更多建议所需的一致性和历史保存级别。最近的一些论文证明,在这样一个敌对的环境中,你能想出的最好办法是分叉因果一致性,至少每个人都可以看到历史已经分叉,即使不能确定“获胜”分叉,也无需其他分叉决议机制。
比特币是这个领域的一个有趣的例子,其中“获胜”是由最长的链决定的,但是这个领域还有其他解决方案,它们可能会也可能不会起作用,具体取决于应用程序语义。你的问题有点太模糊了,无法在如此大的设计空间中给出具体的建议。
| 归档时间: |
|
| 查看次数: |
1032 次 |
| 最近记录: |