Spring Cloud Stream Binder for Azure Event Hubs is now generally available. It is simple to build highly scalable event-driven Java apps using Spring Cloud Stream with Event Hubs, a fully managed, real-time data ingestion service on Azure that is resilient and reliable service for any situation. This includes emergencies, thanks to its geo-disaster recovery and geo-replication features.
Spring Cloud Stream provides a binder abstraction for popular message broker implementations. It provides a flexible programming model built on already established and familiar Spring idioms and best practices, including support for persistent pub/sub semantics, consumer groups, and stateful partitions. Now, developers can use the same patterns for building Java apps with Event Hubs.
Check out the tutorial, “How to create a Spring Cloud Stream Binder application with Azure Event Hubs,” and build a Java-based Spring Cloud Stream Binder application using the Spring Boot Initializer with Azure Event Hubs. Go to the Azure portal and create a new Event Hubs namespace. Add the following Maven dependency into your Java project.
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>spring-cloud-azure-eventhubs-stream-binder</artifactId> <version>1.1.0.RC4</version> </dependency>
Use @EnableBinding(Source.class) to annotate a source class and publish messages to Event Hubs with Spring Cloud Stream patterns. You can customize the output channel for the Source with configurations.
- Destination: Specify which Event Hub to connect with the output channel.
- Sync/Async: Specify the mode to produce the messages.
Subscribe to messages
Use @EnableBinding(Sink.class) to annotate a sink class and consume messages from Event Hubs. You can also customize the input channel with configurations. For the full list, please refer to the documentation, “How to create a Spring Cloud Stream Binder application with Azure Event Hubs.”
- Destination: Specify an Event Hub to bind with the input channel.
- Customer Group: Specify a Consumer Group to receive messages.