Orleans 接收器配置

为了快速了解情况,我们在下面的 XML 语法中显示所有相关的配置参数(包括可选参数):

<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
  <Globals>
    <MultiClusterNetwork
      ClusterId="clusterid"
      DefaultMultiCluster="uswest,europewest,useast"
      BackgroundGossipInterval="30s"
      UseGlobalSingleInstanceByDefault="false"
      GlobalSingleInstanceRetryInterval="30s"
      GlobalSingleInstanceNumberRetries="3"
      MaxMultiClusterGateways="10">
         <GossipChannel Type="..." ConnectionString="..."/>
         <GossipChannel Type="..." ConnectionString="..."/>
    </MultiClusterNetwork>
    <SystemStore ServiceId="some-guid" />
  </Globals>
</OrleansConfiguration>
var silo = new HostBuilder()
    .UseOrleans(builder =>
    {
        builder.Configure<ClusterInfo>(options =>
        {
            options.ClusterId = "us3";
            options.ServiceId = "myawesomeservice";
        })
        .Configure<MultiClusterOptions>(options =>
        {
            options.HasMultiClusterNetwork = true;
            options.DefaultMultiCluster = new[] { "us1", "eu1", "us2" };
            options.BackgroundGossipInterval = TimeSpan.FromSeconds(30);
            options.UseGlobalSingleInstanceByDefault = false;
            options.GlobalSingleInstanceRetryInterval = TimeSpan.FromSeconds(30);
            options.GlobalSingleInstanceNumberRetries = 3;
            options.MaxMultiClusterGateways = 10;
            options.GossipChannels.Add(
                "AzureTable",
                "DefaultEndpointsProtocol=https;AccountName=usa;AccountKey=...");
            options.GossipChannels.Add(
                "AzureTable",
                "DefaultEndpointsProtocol=https;AccountName=europe;AccountKey=...")
        });
    });

与往常一样,还可以通过 GlobalConfiguration 类的相应成员以编程方式读取和写入所有配置设置。

GlobalConfiguration.ServiceId 是用于标识此服务的任意 ID。 所有群集和所有接收器必须采用同一个 ID。

Orleans.Runtime.MultiClusterNetwork 部分是可选的,如果未选择,则为此接收器禁用所有多群集支持。

多群集通信部分介绍了必需参数 ClusterIdGossipChannels

多群集通信部分介绍了可选参数 MaxMultiClusterGatewaysBackgroundGossipInterval

多群集配置部分介绍了可选参数 DefaultMultiCluster

全局单一实例粒度部分介绍了可选参数 UseGlobalSingleInstanceByDefaultGlobalSingleInstanceRetryIntervalGlobalSingleInstanceNumberRetries

Orleans 客户端配置

Orleans 客户端无需进行额外配置。 同一客户端可能不会连接到不同群集中的接收器(在此情况下,接收器拒绝连接)。