本文将对rocktmq-spring-boot的设计实现做一个简单的介绍,读者可以通过本文了解将RocketMQClient端集成为spring-boot-starter框架的开发细节,然后通过一个简单的示例来一步一步的讲解如何使用这个spring-boot-starter工具包来配置,发送和消费RocketMQ消息。
作者简介:辽天,阿里巴巴技术专家,ApacheRocketMQ内核控,拥有多年分布式系统研发经验,对Microservice、Messaging和Storage等领域有深刻理解,目前专注RocketMQ内核优化以及Messaging生态建设。
通过本文,您将了解到:
Spring的消息框架介绍rocketmq-spring-boot具体实现使用示例前言
上世纪90年代末,随着JavaEE(EnterpriseEdition)的出现,特别是EnterpriseJavaBeans的使用需要复杂的描述符配置和死板复杂的代码实现,增加了广大开发者的学习曲线和开发成本,由此基于简单的XML配置和普通Java对象(PlainOldJavaObjects)的Spring技术应运而生,依赖注入(DependencyInjection),控制反转(InversionofControl)和面向切面编程(AOP)的技术更加敏捷地解决了传统Java企业及版本的不足。
随着Spring的持续演进,基于注解(Annotation)的配置逐渐取代了XML文件配置,年4月1日,SpringBoot1.0.0正式发布,它基于“约定大于配置”(Conventionoverconfiguration)这一理念来快速地开发、测试、运行和部署Spring应用,并能通过简单地与各种启动器(如spring-boot-web-starter)结合,让应用直接以命令行的方式运行,不需再部署到独立容器中。这种简便直接快速构建和开发应用的过程,可以使用约定的配置并且简化部署,受到越来越多的开发者的欢迎。
ApacheRocketMQ是业界知名的分布式消息和流处理中间件,简单地理解,它由Broker服务器和客户端两部分组成:
其中客户端一个是消息发布者客户端(Producer),它负责向Broker服务器发送消息;另外一个是消息的消费者客户端(Consumer),多个消费者可以组成一个消费组,来订阅和拉取消费Broker服务器上存储的消息。
为了利用SpringBoot的快速开发和让用户能够更灵活地使用RocketMQ消息客户端,ApacheRocketMQ社区推出了spring-boot-starter实现。随着分布式事务消息功能在RocketMQ4.3.0版本的发布,近期升级了相关的spring-boot代码,通过注解方式支持分布式事务的回查和事务消息的发送。
本文将对当前的设计实现做一个简单的介绍,读者可以通过本文了解将RocketMQClient端集成为spring-boot-starter框架的开发细节,然后通过一个简单的示例来一步一步的讲解如何使用这个spring-boot-starter工具包来配置,发送和消费RocketMQ消息。
Spring中的消息框架
顺便在这里讨论一下在Spring中关于消息的两个主要的框架,即SpringMessaging和SpringCloudStream。它们都能够与SpringBoot整合并提供了一些参考的实现。和所有的实现框架一样,消息框架的目的是实现轻量级的消息驱动的微服务,可以有效地简化开发人员对消息中间件的使用复杂度,让系统开发人员可以有更多的精力