Orleans 2.0官方文档(闫辉的个人翻译)——5.5.2 本地开发配置

本地开发配置

对于针对Orleans 2.0的工作示例应用程序,请参阅:https//github.com/dotnet/orleans/tree/master/Samples/2.0/HelloWorld 该示例在可适用于不同平台的.NET Core控制台应用程序中,承载了客户端和的silo,也可以使用.NET Framework 4.6.1+控制台应用程序来承载(仅适用于Windows)。

silo的配置

有关本地开发,请参阅以下示例,了解如何为这种情况配置silo。它配置并启动一个silo,分别监听“loopback”地址和11111和30000作为silo和网关的端口。

Microsoft.Orleans.ServerNuGet元数据包添加到项目中。熟悉API后,您可以选择Microsoft.Orleans.Server实际确切需要的包,然后引用它们。

PM> Install-Package Microsoft.Orleans.Server

您需要通过ISiloBuilder.Configure方法来配置ClusterOptions,指定DevelopmentClustering作为您的集群选择,用此silo作为主节点,然后配置silo端点。

ConfigureApplicationParts调用显式地将带有grain类的程序集添加到应用程序设置中。它还添加了由于WithReferences扩展而被引用的任何程序集。完成这些步骤后,构建silo主机并启动silo。

您可以创建一个针对.NET Framework 4.6.1或更高版本的空控制台应用程序项目,用于托管silo以及.NET Core控制台应用程序。

以下是如何启动本地silo的示例:

public class Program
{
    public static async Task Main(string[] args)
    {
        try
        {
            var host = await StartSilo();
            Console.WriteLine("Press Enter to terminate...");
            Console.ReadLine();

            await host.StopAsync();

            return;
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
            return;
        }
    }

   private static async Task<ISiloHost> StartSilo()
    {
        var builder = new SiloHostBuilder()
        // Use localhost clustering for a single local silo
            .UseLocalhostClustering()
            // Configure ClusterId and ServiceId
            .Configure<ClusterOptions>(options =>
            {
                options.ClusterId = "dev";
                options.ServiceId = "MyAwesomeService";
            })
            // Configure connectivity
        .Configure<EndpointOptions>(options => options.AdvertisedIPAddress = IPAddress.Loopback)
            // Configure logging with any logging framework that supports Microsoft.Extensions.Logging.
            // In this particular case it logs using the Microsoft.Extensions.Logging.Console package.
            .ConfigureLogging(logging => logging.AddConsole());

        var host = builder.Build();
        await host.StartAsync();
        return host;
    }
}

客户端配置

对于本地开发,请参阅以下示例,了解如何为这种情况配置客户端。它配置了一个连接到loopback silo的客户端。

Microsoft.Orleans.ClientNuGet元数据包添加到项目中。熟悉API后,您可以选择Microsoft.Orleans.Client实际确切需要的包,然后引用它们。

PM> Install-Package Microsoft.Orleans.Client

您需要使用集群ID来配置ClientBuilder,此集群ID与为本地silo指定的集群ID要匹配,然后指定静态集群作为您的集群选择,并将其指向silo的网关端口。

ConfigureApplicationParts 调用显式地将带有grain接口的程序集添加到应用程序设置中。

完成这些步骤后,我们可以构建客户端,然后在客户端上调用Connect()方法以连接到群集。

您可以创建一个针对.NET Framework 4.6.1或更高版本的空控制台应用程序项目来运行客户端,或者重用您为承载silo而创建的控制台应用程序项目。

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

client = new ClientBuilder()
    // Use localhost clustering for a single local silo
    .UseLocalhostClustering()
    // Configure ClusterId and ServiceId
    .Configure<ClusterOptions>(options =>
    {
        options.ClusterId = "dev";
        options.ServiceId = "MyAwesomeService";
    })
    .ConfigureLogging(logging => logging.AddConsole())
var client = builder.Build();
await client.Connect();

猜你喜欢

转载自blog.csdn.net/uddiqpl/article/details/86663502
今日推荐