Microsoft Azure

Using the .NET application, how can an event be sent to and received from azure event hubs?


Create an application to send events to an Azure Event Hub:

Create a console application in Visual Studio and then install the Azure Event Hub NuGet package for .NET called ‘Azure.Messaging.EventHubs’ via the NuGet Packet Manager. You can also install this client in NuGet Packet Manager Console using the following command.


To work with the ‘Azure.Messaging.EventHubs’ packages, you should add the following statements in your program.


Establish a connection to Azure Event Hubs:

To connect to an Azure Event Hub instance, we need the connection string of event hub namespace and event hub name. You can get the connection string and event hub name from the Azure portal.


Create and send events to Azure Event Hubs:

  1. Create a producer EventHubProducerClient object using the primary connection string of event hubs namespace and the event hub name.

  2. Create a batch of events by invoking the CreateBatchAsync method on the EventHubProducerClient object to create a EventDataBatch object.

  3. Add events to the batch using the EventDataBatch .Try Add method.

  4. Send the batch of messages to the event hub using EventHubProducerClient. SendAsync method.


Result :


We can see the send events in Azure portal.


Create an application to receive events from an Azure Event Hub:

Creating a .NET console application to receive events from an event hub and to save the checkpoints on the storage account.


To save the checkpoints, use the Azure Storage.

  • Create an Azure Storage Account.
  • Create a blob container.

Create a console application in Visual Studio and then install the Azure Event Hub NuGet packages for .NET called ‘Azure.Messaging.EventHubs’ and ‘Azure.Messaging.EventHubs.Processor’ via the NuGet Packet Manager. You can also install this client in NuGet Packet Manager Console using the following command.


of an Event Hub and manages checkpoints and state for processing in a durable manner using Azure Storage blobs as the underlying data store.

To work with the Event Hubs packages, you should add the following statements in your program.


The namespace ‘Azure.Messaging.EventHubs.Consumer’ contains the ‘EventHubConsumerClient’ class which is responsible for reading EventData from a specific Event Hub as a member of a specific consumer group.

Establish a connection to Azure Event Hubs and Azure Storage:

To connect to an Azure Event Hub instance and Azure Storage, we need the connection string of event hub namespace, event hub name, storage account connection string and blob container name. You can get the value of the above parameters from the Azure portal.


Receive events from Azure Event Hubs:

  1. Create a storage BlobContainerClient object using the primary connection string of storage account and the blob container name.

  2. Create a processor EventProcessorClient object using the primary connection string of event hubs namespace, event hub name, blob container object and consumer groups.

  3. The EventHubConsumerClient class is used to consume events from an Event Hub.

  4. Specify handlers for ProcessEventAsync and ProcessErrorAsync events of EventProcessorClient to process events and to handle error.

  5. Start processing events by invoking the EventProcessorClient.StartProcessingAsync method.

  6. Stop processing events by invoking the EventProcessorClient.StopProcessingAsync method.


Result:


We can see the received events in Azure portal.