本機開發設定
如需以 Orleans 7.0 為目標的工作範例應用程式,請參閱 Orleans:Hello World 。 此範例會在不同平台運作的 .NET 主控台應用程式中裝載 client 和 silo,而精細度和介面則以 .NET Standard 2.0 為目標。
提示
如需舊版的 Orleans,請參閱 Orleans 範例專案。
定址接收器設定
建議您使用 Microsoft.Extensions.Hosting NuGet 封裝來設定及執行定址接收器。 此外,開發 Orleans 定址接收器時,您將需要 Microsoft.Orleans.Server NuGet 封裝。 針對本機 Orleans 定址接收器開發,您將設定 localhost 叢集,其設定為使用回送位址。 若要使用 localhost 叢集,請呼叫 UseLocalhostClustering 擴充方法。 請考慮此定址接收器主機的 Program.cs 檔案範例:
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();;
})
.RunConsoleAsync();
上述 程式碼:
- 建立預設主控件建立器。
- 呼叫
UseOrleans
擴充方法以設定定址接收器。 - 在指定的 ISiloBuilder 上呼叫
UseLocalhostClustering
擴充方法,將定址接收器設定為使用 localhost 叢集。 - 鏈結
RunConsoleAsync
方法,以做為主控台應用程式執行定址接收器。
如需本機開發,請參閱下列範例,說明如何設定該案例的定址接收器。 其會分別設定並啟動接聽 loopback
位址的定址接收器,11111
和 30000
做為定址接收器和閘道連接埠。
將 Microsoft.Orleans.Server
NuGet 中繼封裝新增至專案。
dotnet add package Microsoft.Orleans.Server
您需要透過 ISiloBuilder Configure
方法來設定 ClusterOptions,並指定您想要 LocalhostClustering
做為叢集選擇,而此定址接收器為主要接收器,然後設定定址接收器端點。
ConfigureApplicationParts 呼叫會明確地將具有粒紋類別的組件新增至應用程式設定。 其也會因為 WithReferences 延伸模組而新增任何參考組件。 完成這些步驟之後,就會建置定址接收器主機,並啟動定址接收器。
您可以建立以 .NET Framework 4.6.1 或更新版本為目標的空白主控台應用程式專案以裝載定址接收器,以及 .NET 主控台應用程式。
以下是如何啟動本機定址接收器的範例:
try
{
var host = await BuildAndStartSiloAsync();
Console.WriteLine("Press Enter to terminate...");
Console.ReadLine();
await host.StopAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
static async Task<ISiloHost> BuildAndStartSiloAsync()
{
var host = new HostBuilder()
.UseOrleans(builder =>
{
builder.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.Configure<EndpointOptions>(
options => options.AdvertisedIPAddress = IPAddress.Loopback)
.ConfigureLogging(logging => logging.AddConsole());
})
.Build();
await host.StartAsync();
return host;
}
用戶端組態
建議您使用 Microsoft.Extensions.Hosting NuGet 封裝來設定及執行用戶端 (除定址接收器之外)。 您也需要 Microsoft.Orleans.Client NuGet 封裝。 若要在取用的用戶端上使用 localhost 叢集,請呼叫 UseLocalhostClustering 擴充方法。 請考慮此用戶端主機的 Program.cs 檔案範例:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
上述 程式碼:
- 建立預設主控件建立器。
- 呼叫
UseOrleansClient
擴充方法以設定用戶端。 - 在指定的 IClientBuilder 上呼叫
UseLocalhostClustering
擴充方法,將用戶端設定為使用 localhost 叢集。 - 呼叫
UseConsoleLifetime
擴充方法,將用戶端設定為使用主控台存留期。 - 呼叫
host
變數上的StartAsync
方法,以啟動用戶端。
如需本機開發,請參閱下列範例,說明如何設定該案例的用戶端。 其會設定連線到 loopback
定址接收器的用戶端。
將 Microsoft.Orleans.Client
NuGet 中繼封裝新增至專案。 當您熟悉 API 之後,就可以挑選並選擇哪些確切封裝包含在您實際所需的 Microsoft.Orleans.Client
中,並改為參考這些封裝。
Install-Package Microsoft.Orleans.Client
您必須使用符合您針對本機定址接收器指定的叢集識別碼進行 ClientBuilder 設定,並將靜態叢集指定為叢集選擇,將其指向定址接收器的閘道連接埠
ConfigureApplicationParts
呼叫會明確地將具有粒紋介面的組件新增至應用程式設定。
完成這些步驟之後,我們即可建置用戶端和 Connect()
方法,以連線到叢集。
您可以建立以 .NET Framework 4.6.1 或更新版本為目標的空白主控台應用程式專案來執行用戶端,或重複使用您為裝載定址接收器所建立的主控台應用程式專案。
以下是用戶端如何連線到本機定址接收器的範例:
var client = new ClientBuilder()
.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.ConfigureLogging(logging => logging.AddConsole())
var client = builder.Build();
await client.Connect();