gpt4 book ai didi

concurrency - 编写可伸缩代码

转载 作者:行者123 更新时间:2023-12-04 03:16:33 24 4
gpt4 key购买 nike

有人可以用非常简单的术语描述您将如何扩展服务(假设服务非常简单并且是函数 X() )。

为了实现可扩展性,您是否可以为每个想要运行 X 的客户端启动一个新节点(最多取决于您的硬件)?

因此,如果我有四个硬件盒,我最多可以启动四个节点来运行服务 X(),在第 5 个客户端请求时,我将只在第一个节点上运行 X(),在第二个节点上运行第 6 个客户端,依此类推?

从这里开始,我知道如何在本地生成进程,但是如何让第一个和第五个客户端都使用同一个节点 1 - 是不是每次都在节点上为客户端远程生成一个进程?

欢迎提供任何简单的示例!

最佳答案

这在很大程度上取决于 X 是什么。如果 X 是完全独立的,例如 x() -> 37. 那么您甚至不需要连接您的节点。只需在您的系统(HAProxy、Varnish 等)前面放置一些标准的负载均衡器,然后忘记任何类型的分布式通信。事实上,没有必要为此使用 Erlang。用您选择的其他语言替换 Erlang。它同样好。

Erlang 的亮点在于几个 X 函数相互依赖的结果,以及 X 可能存在于另一台物理机器上的情况。在那种情况下,Erlang 可以与另一个 X 无缝通信,即使它位于不同的节点上。

如果你想在 Erlang 中实现循环方案,最简单的方法是拥有一个入口点,然后让它将请求转发到多个节点。但如果存在某个节点以所有长时间运行的进程结束的模式,这就很糟糕了。您需要建立一种反馈机制,以便了解如何对循环队列进行加权。

关于concurrency - 编写可伸缩代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11335811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com