ChangeFeedEventHost Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Precaución
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.
Host simple para distribuir eventos de fuente de cambios entre observadores y, por tanto, permitir la escala de estos observadores. Distribuye la carga entre sus instancias y permite el escalado dinámico:
- Las particiones de las colecciones con particiones se distribuyen entre instancias o observadores.
- La nueva instancia toma concesiones de instancias existentes para que la distribución sea igual.
- Si una instancia muere, las concesiones se distribuyen entre las instancias restantes. Resulta útil para escenarios en los que el recuento de particiones es alto para que un host o máquina virtual no pueda procesar muchos eventos de fuente de cambios. La aplicación cliente debe implementar IChangeFeedObserver y registrar la implementación del procesador con 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
- Herencia
-
ChangeFeedEventHost
- Atributos
Ejemplos
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();
}
Comentarios
Usa la colección de documentos auxiliares para administrar concesiones para una partición. Cada instancia de EventProcessorHost realiza las dos tareas siguientes: 1) Renovar concesiones: realiza un seguimiento de las concesiones que posee actualmente el host y mantiene continuamente la renovación de las concesiones. 2) Adquirir concesiones: cada instancia sondea continuamente todas las concesiones para comprobar si hay alguna concesión que debe adquirir para que el sistema entre en estado equilibrado.
Constructores
ChangeFeedEventHost(String, DocumentCollectionInfo, DocumentCollectionInfo) |
Obsoletos.
Inicializa una nueva instancia de la clase ChangeFeedEventHost. |
ChangeFeedEventHost(String, DocumentCollectionInfo, DocumentCollectionInfo, ChangeFeedHostOptions) |
Obsoletos.
Inicializa una nueva instancia de la clase ChangeFeedEventHost. |
ChangeFeedEventHost(String, DocumentCollectionInfo, DocumentCollectionInfo, ChangeFeedOptions, ChangeFeedHostOptions) |
Obsoletos.
Inicializa una nueva instancia de la clase ChangeFeedEventHost. |
Propiedades
HostName |
Obsoletos.
Obtiene el nombre de host, que es un nombre único para la instancia de . |
Métodos
GetEstimatedRemainingWork() |
Obsoletos.
Comprueba de forma asincrónica las concesiones existentes actuales y calcula una estimación del trabajo restante por particiones alquiladas. |
RegisterObserverAsync<T>() |
Obsoletos.
Registra de forma asincrónica la implementación de la interfaz de observador con el host. Este método también inicia el host y le permite empezar a participar en el proceso de distribución de particiones. |
RegisterObserverFactoryAsync(IChangeFeedObserverFactory) |
Obsoletos.
Registra de forma asincrónica la implementación del generador de observador con el host. Este método también inicia el host y le permite empezar a participar en el proceso de distribución de particiones. |
UnregisterObserversAsync() |
Obsoletos.
Apaga de forma asincrónica la instancia de host. Este método mantiene las concesiones en todas las particiones que se mantienen actualmente y permite que cada instancia de host se apague limpiamente invocando el método con el objeto . |
Se aplica a
Azure SDK for .NET