首先,我是奥尔良的新手,但我已经阅读了一些文档,我不得不说这个项目看起来非常有前途。关于如何在生产环境中更新Silos上的谷物代码,我有一个问题。
我知道Erlang有一个演员模型,在Whatsapp中他们可以执行代码的更新。奥尔良目前是否有可能成为可能?或者我是否必须停止孤岛并部署新代码?如果可以,这可以以编程方式完成吗?
谢谢!
答案 0 :(得分:1)
我认为你不能像你说的那样动态部署代码。粒度是类,它们可能依赖于其他类,所有这些类都可以在DLL中找到。例如,如果添加新类,则必须将该DLL部署到所有孤岛上。
注意:我在这里可以互换使用“服务器”和“筒仓”。
您可以采取哪些措施来避免停机,部署服务器的一部分,将流量切换到它们,然后部署剩余的服务器。 Orleans部署支持对集群唯一的DeploymentId。如果使用新的DeploymentId部署孤岛,则它们将不会加入旧集群。
上一段中的描述可能听起来有点抽象,所以让我们举一个实际的例子。您有5台服务器,所有服务器都在DeploymentId 123的同一群集上,负载均衡器以循环方式将流量转发给每个服务器。