Persistenza della grana di Azure Cosmos DB for NoSQL
Il provider di persistenza della grana di Azure Cosmos DB supporta l'API per NoSQL.
Installare il pacchetto NuGet
Installare i pacchetti NuGet Microsoft.Orleans.Persistence.Cosmos e Microsoft.Orleans.Clustering.Cosmos. Il provider Azure Cosmos DB archivia lo stato in un elemento contenitore.
Importante
Per impostazione predefinita, il nome del database usato dal provider è Orleans. Il nome predefinito del contenitore di clustering è OrleansCluster e il nome predefinito del contenitore di archiviazione è OrleansStorage. Il contenitore cluster prevede un valore della chiave di partizione di /ClusterId
e il contenitore di archiviazione prevede /PartitionKey
.
Configurare il provider di clustering
Per configurare il provider di clustering, usare il metodo di estensione HostingExtensions.UseCosmosClustering
. In questo metodo è possibile personalizzare il nome e la velocità effettiva del database o del contenitore, abilitare la creazione di risorse o configurare le credenziali del client.
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>");
});
Configurare il provider di archiviazione
Configurare il provider di persistenza di Azure Cosmos DB usando il metodo di estensione 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>");
});