Orlens入门概念(4)Orleans 服务进程Silo

Orleans 应用程序

正如前面的主题所述,典型的Orleans应用程序由一组服务器进程(孤岛)组成,其中包含Grainlive和一组客户端进程(通常是web服务器),它们接收外部请求,将它们转换为Grain方法调用并返回结果。因此,运行Orleans应用程序需要做的第一件事就是启动一个群集Silo出于测试目的,群集可以由单个组成Silo为了实现可靠的生产部署,我们显然希望Silo集群中有不止一个用于容错和扩展。

一旦群集运行,我们就可以启动一个或多个连接到群集的客户端进程,并向该群集发送请求Grain客户端连接到Silo网关上的特殊TCP端点默认情况下,Silo集群中的每个客户端都启用了客户端网关。因此,客户可以Silo并行连接所有设备,以获得更好的性能和弹性。

配置和启动Silo

Silo通过一个ClusterConfiguration对象以编程方式进行配置它可以被直接实例化和填充,从一个文件加载设置,或者为不同的部署环境使用几种可用的帮助器方法创建。对于本地测试,最简单的方法是使用ClusterConfiguration.LocalhostPrimarySilo()助手方法。然后将配置对象传递给一个新的SiloHost实例,可以在此之后进行初始化和启动。

您可以创建一个空的控制台应用程序项目,以.NET Framework 4.6.1或更高版本为主机SiloNuGet元软件包添加到项目中。Microsoft.Orleans.Server

PM> Install-Package Microsoft.Orleans.Server

这是一个如何Silo启动本地的例子

var siloConfig = ClusterConfiguration.LocalhostPrimarySilo(); 
var silo = new SiloHost("Test Silo", siloConfig); 
silo.InitializeOrleansSilo(); 
silo.StartOrleansSilo();

Console.WriteLine("Press Enter to close."); 
// wait here
Console.ReadLine(); 

// shut the silo down after we are done.
silo.ShutdownOrleansSilo();

配置和连接客户端

用于连接到群集Silo并发送请求的客户端Grain通过ClientConfiguration对象和a 编程方式进行配置ClientBuilder。 ClientConfiguration对象可以实例化并直接填充,可以从文件加载设置,也可以为不同的部署环境使用几种可用的帮助程序方法创建。对于本地测试,最简单的方法是使用ClientConfiguration.LocalhostSilo()助手方法。然后将配置对象传递给一个新的ClientBuilder实例

ClientBuilder公开更多配置其他客户端功能的方法。之后调用BuildClientBuilder对象的方法来获取IClusterClient接口的实现最后,我们调用Connect()返回对象的方法来连接到集群。

您可以创建一个空的控制台应用程序项目,以.NET Framework 4.6.1或更高版本为目标,以运行客户端或重新使用您创建的托管应用程序项目SiloNuGet元软件包添加到项目中。Microsoft.Orleans.Client

PM> Install-Package Microsoft.Orleans.Client

以下是客户端如何连接到本地的示例Silo

var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();

生产配置

我们在这里使用的配置示例用于测试Silo和客户端运行在同一台机器上localhost在生产中,Silo客户端通常运行在不同的服务器上,并且配置有可靠的群集配置选项之一。您可以在“ 配置指南”和“ 群集管理”的描述中找到更多相关信息

下一个

调试

你可能感兴趣的:(orleans)