客户端配置
通过一个ClientBuilder
和多个补充选项类,以编程方式配置一个用于连接Silo集群并将请求发送至Grain的客户端。
客户端配置示例:
var client = new ClientBuilder()
// 集群信息
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "my-first-cluster";
options.ServiceId = "MyOrleansService";
})
// 群集提供程序
.UseAzureStorageClustering(options => options.ConnectionString = connectionString)
// Application parts: just reference one of the grain interfaces that we use
.ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(IHello).Assembly))
.Build();
注意:使用UseAzureStorageClustering
需要引用Microsoft.Orleans.Clustering.AzureStorage
下面让我们细分该示例中使用的步骤:
集群信息
[...]
// Clustering information
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "orleans-docker";
options.ServiceId = "AspNetSampleApp";
})
//客户端连接非本地的网关,配置这个就行了,可以配置多个网关
.UseStaticClustering(new IPEndPoint[] { new IPEndPoint(IPAddress.Parse(""), 30000) })
[...]
这里我们使用了两个设置:
设置ClusterId
为"my-first-cluster"
:这是为Orleans集群的唯一ID。使用此ID的所有客户端和Silo将能够直接相互通信。例如,有些人会选择ClusterId对每个部署使用不同的名称。
设置ServiceId
为"AspNetSampleApp"
:这是你的应用程序的唯一ID,将被一些控制程序使用(例如用于持久性存储)。该ID在整个部署中应该是稳定的(不可更改)。
集群支撑程序
[...]
// Clustering provider
.UseAzureStorageClustering(options => options.ConnectionString = connectionString)
[...]
客户端将使用此程序配置发现群集中所有可用的网关。Orleans有几个支撑程序可以选择,在此示例中,我们使用Azure Table提供程序。
要获取更多详细信息,请查看“服务器配置”页面中的“Server Configuration”部分。
应用部分
[...]
// Application parts: just reference one of the grain interfaces that we use
.ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(IHello).Assembly)).WithReferences())
[...];
便捷路由
目录 : Orleans[NET Core 3.1] 学习笔记(一).NET环境下的分布式应用程序