SpringBoot整合RocketMQ
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot整合RocketMQ相关的知识,希望对你有一定的参考价值。
参考技术A Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件。
支持Broker和Consumer端消息过滤,支持发布订阅模型和点对点,支持拉pull和推push两种消息模式,单一队列百万消息、亿级消息堆积,支持单master节点,多master节点,多master多slave节点,任意一点都是高可用,水平拓展,Producer、Consumer、队列都可以分布式,消息失败重试机制、支持特定level的定时消息,新版本底层采用Netty,4.3.x支持分布式事务,适合金融类业务,高可用性跟踪和审计功能。
Producer :消息生产者
Producer Group :消息生产者组,发送同类消息的一个消息生产组
Consumer :消费者
Consumer Group :消费同类消息的多个实例
Tag :标签,子主题(二级分类)对topic的进一步细化,用于区分同一个主题下的不同业务的消息
Topic :主题, 如订单类消息,queue是消息的物理管理单位,而topic是逻辑管理单位。一个topic下可以有多个queue,
默认自动创建是4个,手动创建是8个
Message :消息,每个message必须指定一个topic
Broker :MQ程序,接收生产的消息,提供给消费者消费的程序
Name Server :给生产和消费者提供路由信息,提供轻量级的服务发现、路由、元数据信息,可以多个部署,互相独立(比zookeeper更轻量)
Offset : 偏移量,可以理解为消息进度
commit log : 消息存储会写在Commit log文件里面
1、添加maven依赖
2、新建jms包,JMSConfig类,设置配置常量
3、新建生产者PayProducer
4、新建PayController
这个时候,启动应用,访问api/sync路径,会报没有这个topic异常
需要去管控台手工创建topic,或者将SpringBoot依赖的RocketMQ版本与服务端RocketMQ的版本改成一样的,也可以。例如我的pom.xml文件中,依赖的版本是4.3.0,而服务器上部署的RocketMQ版本是4.4.0,就不会自动创建topic。
创建topic之后,再次访问访问api/sync路径,会报下面异常
在conf/broker.conf文件中添加如下配置
然后指定配置文件启动Broker,返回上一级,然后重启Broker
或者使用守护进程方式启动Broker
再次访问api/sync,返回成功
RocketMQ管控台也可查询此消息
新建PayConsumer
访问: http://localhost:8080/api/sync?text=test
控制台打印:
以上是关于SpringBoot整合RocketMQ的主要内容,如果未能解决你的问题,请参考以下文章
[SpringBoot系列]SpringBoot如何整合SSMP
SpringBoot完成SSM整合之SpringBoot整合junit