面向事件驱动的 Java:使用 Spring Cloud Stream 和 Azure Event Hubs [客座文章]

工程 | Ben Wilcock | 2019 年 4 月 2 日 | ...

Asir Selvasingh | 首席 PM 架构师 | Microsoft – Java on Azure

适用于 Azure Event Hubs 的 Spring Cloud Stream Binder 现已正式发布。

使用 Spring Cloud Stream 和 Event Hubs 构建高可扩展的事件驱动 Java 应用非常简单。Event Hubs 是 Azure 上一个完全托管的实时数据注入服务,它在任何情况下(包括紧急情况,得益于其异地灾难恢复和异地复制功能)都能提供弹性和可靠的服务。

Spring Cloud Stream 为流行的消息代理实现提供了绑定器抽象。它提供了一个灵活的编程模型,该模型基于已建立且熟悉的 Spring 习惯用法和最佳实践构建,包括对持久发布/订阅语义、消费者组和有状态分区的支持。现在,开发人员可以使用相同的模式构建面向 Event Hubs 的 Java 应用。

Diagram showing Spring Apps inputting to Azure Event Hubs and outputting to other Spring apps, using the Azure event hubs binder and channels.

入门

请查看此教程,并使用 Spring Boot Initializer 和 Azure Event Hubs 构建一个基于 Java 的 Spring Cloud Stream Binder 应用。前往 Azure 门户并创建一个新的 Event Hubs 命名空间。将以下 Maven 依赖项添加到您的 Java 项目中。

<dependency> 
    <groupId>com.microsoft.azure</groupId> 
	<artifactId>spring-cloud-azure-eventhubs-stream-binder</artifactId> 
    <version>1.1.0.RC2</version> 
</dependency>

发布消息

使用 @EnableBinding(Source.class) 注解源类,并使用 Spring Cloud Stream 模式将消息发布到 Event Hubs。您可以通过配置自定义 Source 的输出通道。

  • 目标(Destination):指定与输出通道连接的 Event Hub
  • 同步/异步(Sync/Async):指定消息生产模式

订阅消息

使用 @EnableBinding(Sink.class) 注解 sink 类,并从 Event Hubs 消费消息。您也可以通过配置自定义输入通道。请参考此教程获取完整列表。

  • 目标(Destination):指定要与输入通道绑定的 Event Hub
  • 消费者组(Customer Group):指定一个消费者组来接收消息

尝试使用适用于 Event Hubs 的 Spring Cloud Stream Binder 构建事件驱动 Java 应用

尝试使用 Azure Event Hubs 上的 Spring Cloud Stream Binder 构建 Java 应用,并通过电子邮件或以下评论告诉我们您的想法。

附加资源

关于作者

Asir 于 1995 年 Java 早期开始了其软件工程生涯,多年来构建了众多企业产品、应用和开源项目。现在,他是 Microsoft 的首席 PM 架构师,专注于为开发人员在 Azure 上构建和扩展 Java 工作负载提供全面的服务和工具。他与社区密切合作,在 Java 会议上发表演讲,并 fostering 战略关系以丰富 Java 生态系统。

在空闲时间,Asir 喜欢在 Azure 上玩转 Java 应用,这对他日常工作来说是一种创意的发泄。他热衷于烹饪和摄影,并喜欢与家人一起环游世界享受优质家庭时光。

获取 Spring 新闻通讯

订阅 Spring 新闻通讯,保持连接

订阅

抢占先机

VMware 提供培训和认证,为您的进步提供动力。

了解更多

获取支持

Tanzu Spring 在一份简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举办的活动

查看 Spring 社区所有即将举办的活动。

查看全部