Persistance des grains Azure Cosmos DB for NoSQL
Le fournisseur de persistance des grains Azure Cosmos DB prend en charge l’API pour NoSQL.
Installer le package NuGet
Installez les packages NuGet Microsoft.Orleans.Persistence.Cosmos et Microsoft.Orleans.Clustering.Cosmos. Le fournisseur Azure Cosmos DB stocke l’état dans un élément conteneur.
Important
Le nom de base de données par défaut utilisé par le fournisseur est Orleans. Le nom du conteneur de clustering par défaut est OrleansCluster et le nom du conteneur de stockage par défaut est OrleansStorage. Le conteneur de clusters attend une valeur de clé de partition de /ClusterId
et le conteneur de stockage attend /PartitionKey
.
Configurer un fournisseur de clustering
Pour configurer le fournisseur de clustering, utilisez la méthode d’extension HostingExtensions.UseCosmosClustering
. Vous pouvez personnaliser le nom et le débit de la base de données ou du conteneur, activer la création de ressources ou configurer les informations d’identification du client dans cette méthode.
siloBuilder.UseCosmosClustering(
configureOptions: static options =>
{
options.IsResourceCreationEnabled = true;
options.DatabaseName = "OrleansAlternativeDatabase";
options.ContainerName = "OrleansClusterAlternativeContainer";
options.ContainerThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000);
options.ConfigureCosmosClient("<azure-cosmos-db-nosql-connection-string>");
});
Configurer un fournisseur de stockage
Configurez le fournisseur de persistance des grains Azure Cosmos DB en utilisant la méthode d’extension HostingExtensions.AddCosmosGrainStorage
.
siloBuilder.AddCosmosGrainStorage(
name: "profileStore",
configureOptions: static options =>
{
options.IsResourceCreationEnabled = true;
options.DatabaseName = "OrleansAlternativeDatabase";
options.ContainerName = "OrleansStorageAlternativeContainer";
options.ContainerThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000);
options.ConfigureCosmosClient("<azure-cosmos-db-nosql-connection-string>");
});