Consumers
El consumer es un agente que se subscribe a un topic y reacciona a los eventos que suceden en ese topic.
Para crear un consumer con la librería debemos simplemente declarar cuál será el objeto suscrito, que evento espera y en qué topic. La librería se encargará de ejecutar la acción adecuada.
Example¶
Configuración
En nuestro archivo de startup debemos importar la librería Andreani.ARQ.AMQStreams
Simplemente llamar al método de extensión AddKafka()
.
public void Configure(IWebHostBuilder builder)
{
builder.ConfigureServices((ctx, c) =>
{
c.AddKafka(ctx.Configuration)
.ToConsumer<Subscriber, CustomEvent>("my-topic")
.Build();
});
}
El metodo ToConsumer
necesita que le declaren el objeto de tipo ISubscriber (Subscriber
), el evento que va a esperar (CustomEvent
) y el topic al cual va a estar suscrito (my-topic
)
Como consumir¶
Para consumir un evento el objeto que será el suscriptor debe implementar la interface ISubscriber
public class Subscriber : ISubscriber
Luego el objeto suscriptor debe contener al menos un método que reciba por parámetro el evento.
public void ReciveCustomEvent(CustomEvent @event)
{
Console.WriteLine($"Content event codigo: {@event.codigo} - message {@event.mensaje}");
}
La librería invocará a este método cuando reciba el evento que se declaró.
Si necesitamos conocer más información del evento, simplemente podemos crear un método que reciba el objeto ConsumerMetadata
public void ReciveCustomEvent(CustomEvent @event, ConsumerMetadata metadata)
{
Console.WriteLine($"Recived event with key: {metadata.Key} and Timestamp: {metadata.Timestamp.UtcDateTime.ToString()}");
Console.WriteLine($"Content event codigo: {@event.codigo} - message {@event.mensaje}");
}