基于Spring Cloud Stream和Azure Event Hubs的事件驱动型Java应用[客座博文]

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

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

用于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的输出通道。

  • 目标:指定要与输出通道连接的Event Hub。
  • 同步/异步:指定生成消息的模式。

订阅消息

使用@EnableBinding(Sink.class)注释接收器类,并从Event Hubs消费消息。您还可以使用配置自定义输入通道。请参考此教程了解完整列表。

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

尝试使用Event Hubs的Spring Cloud Stream Binder构建事件驱动型Java应用程序。

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

其他资源

关于作者

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

在业余时间,Asir喜欢在Azure上摆弄Java应用程序,这成为他日常工作之外的一种创意表达方式。他热爱烹饪和摄影,并享受与家人一起环游世界的美好时光。

获取Spring新闻通讯

通过Spring新闻通讯保持联系

订阅

领先一步

VMware提供培训和认证,以加速您的进步。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部