Orleans 2.0 官方文档 —— 6.8.1 部署 -> 多集群支持 -> 概述

多集群支持

Orleans v.1.3.0增加了对将几个Orleans集群联合到一个松散连接的多集群的支持,该多集群的作用类似于单个服务。

多集群有助于服务的地理分布,也就是说,可以更轻松地在全球多个数据中心运行Orleans应用程序。此外,也可以在单个数据中心内运行多集群,以获得更好的故障和性能隔离。

所有机制的设计都特别注意了:(1)最小化集群之间的通信,以及(2)让每个集群自治地运行,即使其他集群出现故障或无法访问。

配置和操作

接下来,我们将介绍如何配置和运行多集群。

通信。通过与集群中使用相同的silo-to-silo连接,集群间进行通信。为了交换状态和配置信息,集群使用gossip机制和gossip通道的实现。

silo配置。需要对silo进行配置,以便它们知道它们属于哪个集群(每个集群都由唯一的字符串标识)。此外,每个silo都需要配置连接字符串,以便它在启动时连接到一个或多个gossip通道

多群集配置的注入。在运行时,服务运营商可以指定和/或更改包含集群ID列表的多群集配置,以指定哪些群集是当前多群集的一部分。这是通过在任何一个集群中,调用管理grain来实现的。

多集群grain

下面,我们将介绍如何在应用程序级别使用多集群功能。

全局单实例grain。开发人员可以指示集群何时以及如何,针对特定的grain类,协调它们的grain类别。[GlobalSingleInstance]属性意味着,我们需要与在单个全局集群中运行Orleans时相同的行为:也就是说,将所有调用,路由到单个激活的grain。相反,[OneInstancePerCluster]属性指示每个群集可以具有其自己的独立激活体。如果不希望集群之间的通信,这是适当的。

Log-View Grains (不在v.1.3.0中)。一种特殊类型的grain,使用新的API(类似于event sourcing),以同步或持久化grain的状态。它可以用存储,来自动且高效地同步集群之间的grain状态。由于其同步算法可以安全地与可重入的grain一起使用,并且针对使用批处理和复制进行了优化,因此,当一个grain在多集群中被频繁访问时,和/或被频繁写入存储时,它可以比标准的grain执行得更快。对log-view grain的支持还不是主分支的一部分。在geo-orleans分支中,我们有一个预发行版,其中包括一些示例和文档。它目前正在由早期采用者,进行生产环境的评估。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值