Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪些项目是将erlang Web服务器轻松扩展到多台机器的好例子_Erlang - Fatal编程技术网

哪些项目是将erlang Web服务器轻松扩展到多台机器的好例子

哪些项目是将erlang Web服务器轻松扩展到多台机器的好例子,erlang,Erlang,在将erlang项目扩展到多个节点时,是否有任何开源项目或教程是最佳实践的示例 例如,我想研究一个在一台机器上启动服务器的项目,我可以通过简单地连接更多节点并使用net_adm:ping连接其他机器来扩展web应用程序。尽可能接近这个目标。我知道manning erlang这本书对这个主题进行了一些探讨。说到可伸缩性,有很多方法可以实现它,erlang/OTP只是提供了一套通用工具和机制来更简单地实现它们,在某种程度上,您可以简单地使您的Erlang运行时成为一个分布式节点,它可以向其他节点的进

在将erlang项目扩展到多个节点时,是否有任何开源项目或教程是最佳实践的示例


例如,我想研究一个在一台机器上启动服务器的项目,我可以通过简单地连接更多节点并使用net_adm:ping连接其他机器来扩展web应用程序。尽可能接近这个目标。我知道manning erlang这本书对这个主题进行了一些探讨。

说到可伸缩性,有很多方法可以实现它,erlang/OTP只是提供了一套通用工具和机制来更简单地实现它们,在某种程度上,您可以简单地使您的Erlang运行时成为一个分布式节点,它可以向其他节点的进程发送消息或调用它们的函数

Erlang提供的机制如下:

使用Erlang/OTP工具和机制使其产品具有可扩展性的著名项目有、、和其他一些。让我们谈谈里亚克和拉比特

里亚克: Riak是一个高度可用的NoSQL数据库,它是基于环形拓扑上的节点集群实现的。具有分区容错性、可用性和最终一致性的节点同时使用复制和分区方式,并且需要大量的节点间通信。Riak使用Erlang分发机制通过其gossip协议进行大多数节点间通信。Riak使用Erlang端口映射程序守护进程将节点标识符解析为给定机器上的TCP端口

兔子 RabbitMQ是一种消息代理,它使用复制来实现消息的可靠性并扩展负载和吞吐量。这样,队列可以选择性地跨多个节点镜像。每个镜像队列由一个主队列和一个或多个从队列组成。RabbitMQ使用Erlang/OTP提供的分发工具和机制,例如,它将消息存储在Mnesia上,并使用其功能复制数据



如果您想了解如何使用基本的Erlang分发机制的简单教程,我建议您使用两个节点之间的乒乓球。

,或者。但它们都相当复杂。你应该明白在Erlang中没有魔法。您不能只是添加节点,然后神奇地解决您的问题。可伸缩性是您应该在产品中专门设计的东西。向单个节点添加更多资源(通常需要添加CPU或内存)称为“向上扩展”,我认为您可能指的是向外扩展,即向分布式系统添加额外的节点。如果是这样,我建议编辑你的问题。