Partager via


ChangeFeedEventHost Classe

Définition

Attention

Switch to the ChangeFeedProcessorBuilder class and use the BuildAsync method for building the change feed processor host or the BuildEstimatorAsync method for building the remaining work estimator.

Hôte simple pour distribuer des événements de flux de modification entre les observateurs et permettre ainsi à ces observateurs de mettre à l’échelle. Il répartit la charge entre ses instances et permet une mise à l’échelle dynamique :

  • Les partitions des collections partitionnées sont distribuées entre les instances/observateurs.
  • La nouvelle instance prend des baux d’instances existantes pour rendre la distribution égale.
  • Si un instance meurt, les baux sont distribués entre les instances restantes. Il est utile pour les scénarios où le nombre de partitions est élevé, de sorte qu’un hôte/une machine virtuelle n’est pas en mesure de traiter autant d’événements de flux de modification. L’application cliente doit implémenter IChangeFeedObserver et inscrire l’implémentation du processeur avec ChangeFeedEventHost.
[System.Obsolete("Switch to the ChangeFeedProcessorBuilder class and use the BuildAsync method for building the change feed processor host or the BuildEstimatorAsync method for building the remaining work estimator.")]
public class ChangeFeedEventHost
[<System.Obsolete("Switch to the ChangeFeedProcessorBuilder class and use the BuildAsync method for building the change feed processor host or the BuildEstimatorAsync method for building the remaining work estimator.")>]
type ChangeFeedEventHost = class
Public Class ChangeFeedEventHost
Héritage
ChangeFeedEventHost
Attributs

Exemples

class DocumentFeedObserver : IChangeFeedObserver
{
    private static int s_totalDocs = 0;
    public Task OpenAsync(ChangeFeedObserverContext context)
    {
        Console.WriteLine("Worker opened, {0}", context.PartitionKeyRangeId);
        return Task.CompletedTask;  // Requires targeting .NET 4.6+.
    }
    public Task CloseAsync(ChangeFeedObserverContext context, ChangeFeedObserverCloseReason reason)
    {
        Console.WriteLine("Worker closed, {0}", context.PartitionKeyRangeId);
        return Task.CompletedTask;
    }
    public Task ProcessChangesAsync(ChangeFeedObserverContext context, IReadOnlyList<Document> docs)
    {
        Console.WriteLine("Change feed: total {0} doc(s)", Interlocked.Add(ref s_totalDocs, docs.Count));
        return Task.CompletedTask;
    }
}
static async Task StartChangeFeedHost()
{
    string hostName = Guid.NewGuid().ToString();
    DocumentCollectionInfo documentCollectionLocation = new DocumentCollectionInfo
    {
        Uri = new Uri("https://YOUR_SERVICE.documents.azure.com:443/"),
        MasterKey = "YOUR_SECRET_KEY==",
        DatabaseName = "db1",
        CollectionName = "documents"
    };
    DocumentCollectionInfo leaseCollectionLocation = new DocumentCollectionInfo
    {
        Uri = new Uri("https://YOUR_SERVICE.documents.azure.com:443/"),
        MasterKey = "YOUR_SECRET_KEY==",
        DatabaseName = "db1",
        CollectionName = "leases"
    };
    Console.WriteLine("Main program: Creating ChangeFeedEventHost...");
    ChangeFeedEventHost host = new ChangeFeedEventHost(hostName, documentCollectionLocation, leaseCollectionLocation);
    await host.RegisterObserverAsync<DocumentFeedObserver>();
    Console.WriteLine("Main program: press Enter to stop...");
    Console.ReadLine();
    await host.UnregisterObserversAsync();
}

Remarques

Il utilise une collection de documents auxiliaire pour gérer les baux d’une partition. Chaque instance EventProcessorHost effectue les deux tâches suivantes : 1) Renouveler les baux : Il effectue le suivi des baux actuellement détenus par l’hôte et continue de renouveler les baux. 2) Acquérir des baux : chaque instance interroge continuellement tous les baux pour case activée s’il y a des baux qu’il devrait acquérir pour que le système soit à l’équilibre.

Constructeurs

ChangeFeedEventHost(String, DocumentCollectionInfo, DocumentCollectionInfo)
Obsolète.

Initialise une nouvelle instance de la classe ChangeFeedEventHost.

ChangeFeedEventHost(String, DocumentCollectionInfo, DocumentCollectionInfo, ChangeFeedHostOptions)
Obsolète.

Initialise une nouvelle instance de la classe ChangeFeedEventHost.

ChangeFeedEventHost(String, DocumentCollectionInfo, DocumentCollectionInfo, ChangeFeedOptions, ChangeFeedHostOptions)
Obsolète.

Initialise une nouvelle instance de la classe ChangeFeedEventHost.

Propriétés

HostName
Obsolète.

Obtient le nom d’hôte, qui est un nom unique pour le instance.

Méthodes

GetEstimatedRemainingWork()
Obsolète.

Vérifie de manière asynchrone les baux existants actuels et calcule une estimation du travail restant par partitions louées.

RegisterObserverAsync<T>()
Obsolète.

Inscrit de manière asynchrone l’implémentation de l’interface d’observateur auprès de l’hôte. Cette méthode démarre également l’hôte et lui permet de commencer à participer au processus de distribution de partition.

RegisterObserverFactoryAsync(IChangeFeedObserverFactory)
Obsolète.

Inscrit de manière asynchrone l’implémentation de fabrique d’observateur auprès de l’hôte. Cette méthode démarre également l’hôte et lui permet de commencer à participer au processus de distribution de partition.

UnregisterObserversAsync()
Obsolète.

Arrête de manière asynchrone le instance hôte. Cette méthode conserve les baux sur toutes les partitions actuellement détenues et permet à chaque instance hôte de s’arrêter proprement en appelant la méthode avec un objet.

S’applique à