Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Nachfolgend finden Sie Beispiele für typische Konfigurationen, die Sie für Entwicklungs- und Produktionsbereitstellungen verwenden können.
Lokale Entwicklung
Weitere Informationen finden Sie unter "Konfiguration der lokalen Entwicklung".
Zuverlässige Produktionsbereitstellung mit Azure
Verwenden Sie für eine zuverlässige Produktionsbereitstellung mit Azure die Azure-Tabellenoption für die Clustermitgliedschaft. Diese Konfiguration ist typisch für Bereitstellungen für lokale Server, Container oder Azure Virtual Machine-Instanzen.
Das Format der DataConnection Zeichenfolge ist eine durch Semikolons getrennte Liste von Key=Value Paaren. Die folgenden Optionen werden unterstützt:
| Schlüssel | Wert |
|---|---|
DefaultEndpointsProtocol |
https |
AccountName |
<Azure storage account> |
AccountKey |
<Azure table storage account key> |
Im Folgenden sehen Sie ein Beispiel für eine DataConnection Zeichenfolge für den Azure-Tabellenspeicher:
"DefaultEndpointsProtocol=https;AccountName=<Azure storage account>;AccountKey=<Azure table storage account key>"
Silokonfiguration:
const string connectionString = "YOUR_CONNECTION_STRING_HERE";
var silo = new HostBuilder()
.UseOrleans(builder =>
{
builder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "Cluster42";
options.ServiceId = "MyAwesomeService";
})
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(connectionString))
.ConfigureEndpoints(siloPort: 11_111, gatewayPort: 30_000)
.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Warning).AddConsole())
})
.Build();
Clientkonfiguration:
const string connectionString = "YOUR_CONNECTION_STRING_HERE";
using var host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(clientBuilder =>
clientBuilder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "Cluster42";
options.ServiceId = "MyAwesomeService";
})
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(connectionString)))
.Build();
Zuverlässige Produktionsbereitstellung mit SQL Server
Geben Sie für eine zuverlässige Produktionsbereitstellung mit SQL Server eine SQL Server-Verbindungszeichenfolge an.
Silokonfiguration:
const string connectionString = "YOUR_CONNECTION_STRING_HERE";
var silo = new HostBuilder()
.UseOrleans(builder =>
{
builder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "Cluster42";
options.ServiceId = "MyAwesomeService";
})
.UseAdoNetClustering(options =>
{
options.ConnectionString = connectionString;
options.Invariant = "System.Data.SqlClient";
})
.ConfigureEndpoints(siloPort: 11111, gatewayPort: 30000)
.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Warning).AddConsole())
})
.Build();
Clientkonfiguration:
const string connectionString = "YOUR_CONNECTION_STRING_HERE";
using var host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(clientBuilder =>
clientBuilder.Configure<ClusterOptions>(options =>
{
options.ClusterId = "Cluster42";
options.ServiceId = "MyAwesomeService";
})
.UseAdoNetClustering(options =>
{
options.ConnectionString = connectionString;
options.Invariant = "System.Data.SqlClient";
}))
.Build();
Unzuverlässige Bereitstellung auf einem Cluster dedizierter Server
Zum Testen auf einem Cluster dedizierter Server, bei denen Zuverlässigkeit kein Problem darstellt, können Sie die Abhängigkeit von Azure Table nutzen MembershipTableGrain und vermeiden. Sie müssen nur einen der Knoten als primär festlegen.
Auf den Silos:
var primarySiloEndpoint = new IPEndpoint(PRIMARY_SILO_IP_ADDRESS, 11_111);
var silo = new HostBuilder()
.UseOrleans(builder =>
{
builder
.UseDevelopmentClustering(primarySiloEndpoint)
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "Cluster42";
options.ServiceId = "MyAwesomeService";
})
.ConfigureEndpoints(siloPort: 11_111, gatewayPort: 30_000)
.ConfigureLogging(logging => logging.AddConsole())
})
.Build();
Auf den Clients:
var gateways = new IPEndPoint[]
{
new IPEndPoint(PRIMARY_SILO_IP_ADDRESS, 30_000),
new IPEndPoint(OTHER_SILO__IP_ADDRESS_1, 30_000),
// ...
new IPEndPoint(OTHER_SILO__IP_ADDRESS_N, 30_000),
};
using var host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(clientBuilder =>
clientBuilder.UseStaticClustering(gateways)
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "Cluster42";
options.ServiceId = "MyAwesomeService";
}))
.Build();