Orleans[NET Core 3.1] 學習筆記(三)( 1 )本地開發配置

本地開發配置

本地開發和調試的時候,咱們可能不須要去關注集羣和網絡ip端口。因此對於本地開發模式,Orleans給了咱們比較簡單的配置方式。html

Silo配置

在本地開發的配置模式下,Orleans會默認使用本地11111和30000做爲Silo和網管的監聽端口網絡

此時咱們須要ClusterOptions經過ISiloBuilder.Configure方法進行配置。框架

ConfigureApplicationParts用於將帶有Grain類的程序集顯式添加到應用程序設置中。因爲WithReferences擴展,它還會添加由程序集引用的全部程序集。完成這些步驟後,將創建Silo主機並啓動Silo。async

下面是啓動本地Silo的示例:分佈式

public class Program
{
    public static async Task Main(string[] args)
    {
        try
        {
            var host = await StartSilo();
            Console.WriteLine("按回車鍵中止...");
            Console.ReadLine();

            await host.StopAsync();

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

   private static async Task<ISiloHost> StartSilo()
    {
        var builder = new SiloHostBuilder()
            // 配置Silo只使用開發集羣,並監聽本地主機。
            .UseLocalhostClustering()
            // 配置ClusterId和ServiceId
            .Configure<ClusterOptions>(options =>
            {
                options.ClusterId = "dev";
                options.ServiceId = "MyAwesomeService";
            })
            // 配置鏈接
            .Configure<EndpointOptions>(options => options.AdvertisedIPAddress = IPAddress.Loopback)
            // 使用任何支持Microsoft.Extensions.logging的日誌框架配置日誌記錄
            // 在本例中,使用Microsoft.Extensions.Logging.Console包進行日誌記錄.
            .ConfigureLogging(logging => logging.AddConsole());

        var host = builder.Build();//運行給定的配置來初始化主機。只能調用一次。
        await host.StartAsync();//啓動當前Silo並等待
        return host;
    }
}

客戶端配置

如今咱們須要配置ClientBuilder與本地Silo指定的羣集ID相匹配的羣集ID,並將靜態羣集指定爲指向Silo的網關端口的羣集oop

完成以後,咱們能夠使用Connect()讓客戶端鏈接到集羣學習

下面是啓動客戶端鏈接到本地Silo的示例:ui

client = new ClientBuilder()
    // 配置客戶端以鏈接到本地主機上的Silo
    .UseLocalhostClustering()
    // 配置ClusterId和ServiceId
    .Configure<ClusterOptions>(options =>
    {
        options.ClusterId = "dev";
        options.ServiceId = "MyAwesomeService";
    })
    .ConfigureLogging(logging => logging.AddConsole())
var client = builder.Build();
await client.Connect();

便捷路由

目錄Orleans[NET Core 3.1] 學習筆記(一).NET環境下的分佈式應用程序調試

上一節Orleans[NET Core 3.1] 學習筆記(二)Hello World日誌

下一節Orleans[NET Core 3.1] 學習筆記(三)( 2 )客戶端配置

相關文章
相關標籤/搜索