Configurations typiques
Voici des exemples de configurations typiques qui peuvent être utilisées pour les déploiements de développement et de production.
Développement local
Pour plus d’informations, consultez Configuration du développement local.
Déploiement de production fiable à l’aide d’Azure
Pour un déploiement de production fiable avec Azure, vous devez utiliser l’option Table Azure pour l’appartenance au cluster. Cette configuration est propre aux déploiements sur des serveurs locaux, des conteneurs ou des instances de machine virtuelle Azure.
Le format de la chaîne DataConnection
est une liste séparée par des ;
de paires Key=Value
. Les options suivantes sont prises en charge :
Clé | Valeur |
---|---|
DefaultEndpointsProtocol |
https |
AccountName |
<Azure storage account> |
AccountKey |
<Azure table storage account key> |
Voici un exemple de chaîne DataConnection
pour le stockage Table Azure :
"DefaultEndpointsProtocol=https;AccountName=<Azure storage account>;AccountKey=<Azure table storage account key>"
Configuration des silos :
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();
Configuration des clients :
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();
Déploiement de production fiable à l’aide de SQL Server
Pour un déploiement de production fiable à l’aide de SQL Server, une chaîne de connexion SQL Server doit être fournie.
Configuration des silos :
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();
Configuration des clients :
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();
Déploiement non fiable sur un cluster de serveurs dédiés
Pour les tests sur un cluster de serveurs dédiés, quand la fiabilité n’est pas une préoccupation, vous pouvez tirer parti de MembershipTableGrain
et éviter la dépendance sur la table Azure. Vous devez simplement désigner l’un des nœuds comme nœud principal.
Sur les 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();
Sur les 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();