Konfiguracja klientów
Klient do nawiązywania połączenia z klastrem silosów i wysyłania żądań do ziarna jest konfigurowany programowo za pośrednictwem IHostBuilder kilku dodatkowych klas opcji. Podobnie jak w przypadku opcji silosu, klasy opcji klienta są zgodne ze wzorcem Opcji na platformie .NET.
Klient do nawiązywania połączenia z klastrem silosów i wysyłania żądań do ziarna jest konfigurowany programowo za pośrednictwem ClientBuilder kilku dodatkowych klas opcji. Podobnie jak w przypadku opcji silosu, klasy opcji klienta są zgodne ze wzorcem Opcji na platformie .NET.
Napiwek
Jeśli chcesz tylko uruchomić lokalny silos i lokalny klient na potrzeby programowania, zobacz Konfiguracja programowania lokalnego.
Dodaj microsoft .Orleans. Pakiet NuGet Clustering.AzureStorage do projektu klienta.
Istnieje kilka kluczowych aspektów konfiguracji klienta:
- Orleans informacje o klastrowaniu
- Dostawca klastrowania
- Części aplikacji
Przykład konfiguracji klienta:
var client = new HostBuilder()
.UseOrleansClient((context, clientBuilder) =>
{
clientBuilder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "my-first-cluster";
options.ServiceId = "MyOrleansService";
})
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(
context.Configuration["ORLEANS_AZURE_STORAGE_CONNECTION_STRING"]));
})
.Build();
using Orleans.Hosting;
var client = new ClientBuilder()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "my-first-cluster";
options.ServiceId = "MyOrleansService";
})
.UseAzureStorageClustering(
options => options.ConnectionString = connectionString)
.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly))
.Build();
Przyjrzyjmy się krokom użytym w tym przykładzie:
Orleans informacje o klastrowaniu
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "orleans-docker";
options.ServiceId = "AspNetSampleApp";
})
W tym miejscu ustawiamy dwie rzeczy:
"my-first-cluster"
do ClusterOptions.ClusterId : jest to unikatowy identyfikator klastraOrleans. Wszyscy klienci i silos używający tego identyfikatora będą mogli bezpośrednio komunikować się ze sobą. Niektóre z nich zdecydują się na użycie innegoClusterId
dla poszczególnych wdrożeń, na przykład.- wartość ClusterOptions.ServiceId to
"AspNetSampleApp"
: jest to unikatowy identyfikator aplikacji, który będzie używany przez niektórych dostawców (na przykład dla dostawców trwałości). Ten identyfikator powinien być stabilny (nie zmieniany) we wdrożeniach.
Dostawca klastrowania
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(connectionString);
.UseAzureStorageClustering(
options => options.ConnectionString = connectionString)
Klient odnajdzie całą bramę dostępną w klastrze przy użyciu tego dostawcy. Dostępnych jest kilka dostawców. W tym przykładzie używamy dostawcy tabel platformy Azure.
Aby uzyskać więcej informacji, zobacz Konfiguracja serwera.
Części aplikacji
.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly))
.WithReferences())
Aby uzyskać więcej informacji, zobacz Konfiguracja serwera.