首先,我是Orleans的新手,但我已经阅读了一些文档,我必须说这个项目看起来非常有前途。我有一个关于如何在生产环境中更新竖井上的颗粒代码的问题。
我知道Erlang有一个角色模型,在Whatsapp中,他们可以执行onthefly代码更新。这是目前在Orleans上可能发生的事情,还是我必须停止竖井并部署新代码?如果是这样的话,这可以通过编程来完成吗?
谢谢!
发布于 2017-01-04 03:32:01
我不认为你可以像你说的那样在飞行中部署代码。Grains是类,它们可能依赖于其他类,所有这些类都可以在DLL中找到。例如,如果添加一个新类,则必须将该DLL部署到所有竖井上。
注意:我在这里交替使用"server“和"silo”。
为了避免宕机,您可以部署部分服务器,将流量切换到这些服务器,然后部署其余的服务器。Orleans部署支持集群唯一的DeploymentId。如果您使用新的DeploymentId部署思洛存储器,它们将不会加入旧群集。
上一段中的描述可能听起来有点抽象,所以让我们举一个实际的例子。您有5台服务器,都在使用DeploymentId 123的同一集群上,负载均衡器以循环方式向每台服务器转发流量。
https://stackoverflow.com/questions/41446741
复制相似问题