SpringBoot2.x整合RocketMQ

SpringBoot2.x整合RocketMQ

JMS介绍和使用场景及基础编程模型

1、JMS介绍和使用场景及基础编程模型
简介:讲解什么是消息队列,JMS的基础知识和使用场景
1、什么是JMS: Java消息服务(Java Message Service),Java平台中关于面向消息中间件的接口

2、JMS是一种与厂商无关的 API,用来访问消息收发系统消息,它类似于JDBC(Java Database Connectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的 API

3、使用场景:
	1)跨平台 
	2)多语言 
	3)多项目
	4)解耦
	5)分布式事务

	6)流量控制
	7)最终一致性
	8)RPC调用
		上下游对接,数据源变动->通知下属

在这里插入图片描述

4、概念	
	JMS提供者:Apache ActiveMQ、RabbitMQ、Kafka、Notify、MetaQ、RocketMQ
	JMS生产者(Message Producer)
	JMS消费者(Message Consumer)
	JMS消息
	JMS队列
	JMS主题

	JMS消息通常有两种类型:点对点(Point-to-Point)、发布/订阅(Publish/Subscribe)
  • 点对点 (单一系统)
    在这里插入图片描述
  • 发布/订阅

在这里插入图片描述
5、编程模型
MQ中需要用的一些类
ConnectionFactory :连接工厂,JMS 用它创建连接
Connection :JMS 客户端到JMS Provider 的连接
Session: 一个发送或接收消息的线程
Destination :消息的目的地;消息发送给谁.
MessageConsumer / MessageProducer: 消息接收者,消费者

在这里插入图片描述

RocketMQ4.x消息队列介绍

官网地址:http://rocketmq.apache.org/

学习参考 学习资源:
1)http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/
2)https://www.jianshu.com/p/453c6e7ff81c
简介:阿里开源消息队列 RocketMQ4.x介绍和新概念讲解

1、Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件
2、特点
	1)在高压下1毫秒内响应延迟超过99.6%。
	2)适合金融类业务,高可用性跟踪和审计功能。
	3)支持发布订阅模型,和点对点
	4)支持拉pull和推push两种消息模式
	5)单一队列百万消息
	6)支持单master节点,多master节点,多master多slave节点(主从模式)
	...
3、概念
	Producer:消息生产者
	Producer Group:消息生产者组,发送同类消息的一个消息生产组

	Consumer:消费者
	Consumer Group:消费同个消息的多个实例

	Tag:标签,子主题(二级分类),用于区分同一个主题下的不同业务的消息

	Topic:主题
	Message:消息
	Broker:MQ程序,接收生产的消息,提供给消费者消费的程序
	Name Server:给生产和消费者提供路由信息,提供轻量级的服务发现和路由		

在这里插入图片描述

RocketMQ4.x本地快速部署

简介:RocketMQ4.x本地快速部署

1、安装前提条件(推荐)
	64bit OS, Linux/Unix/Mac
	64bit JDK 1.8+;

2、快速开始 http://rocketmq.apache.org/docs/quick-start/

官网下载:http://rocketmq.apache.org/docs/quick-start/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、解压压缩包 
进入bin目录

1.启动namesrv

**namesrv相当于kafka中的zookeeper**
 nohup sh mqnamesrv & 

在这里插入图片描述

查看日志

 tail -f nohup.out
	结尾:The Name Server boot success. serializeType=JSON 表示启动成功

在这里插入图片描述
或者 查看启动的java程序

ps -ef | grep java 

在这里插入图片描述
在这里插入图片描述

2.启动broker

nohup sh mqbroker -n 10.139.12.15:9876 autoCreateTopicEnable=true &

指定配置文件启动

nohup sh bin/mqbroker -n 10.139.12.15:9876 -c conf/broker.conf autoCreateTopicEnable=true &

在这里插入图片描述
通过查看日志和java进程都可以可以看放到BrokerStartup启动成功

tail -f ~/logs/rocketmqlogs/broker.log

在这里插入图片描述
在这里插入图片描述

3.发送/接收数据

Send & Receive Messages

发送数据

 export NAMESRV_ADDR=10.139.12.15:9876
 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

SendResult [sendStatus=SEND_OK, msgId= ...

若想环境变量永久生效可以添加到系统环境变量

接收消息

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

在这里插入图片描述

常见问题解决:

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest

4.关闭nameserver broker执行的命令

关闭nameserver

sh mqshutdown namesrv

关闭broker

sh mqshutdown broker

RoekerMQ4.x可视化控制台讲解

简介:RoekerMQ4.x可视化控制台讲解

	1、下载 https://github.com/apache/rocketmq-externals
	2、编译打包  
	解压 进入 rocketmq-externals-master/rocketmq-console

在这里插入图片描述
在这里插入图片描述

mva打包命令

mvn clean package -Dmaven.test.skip=true

在这里插入图片描述
3、target目录 通过java -jar的方式运行

在这里插入图片描述
默认端口号为8080
使用浏览器输入:10.139.12.149:8080
如果8080 端口号被占用 可以在启动jar包时指定端口号
在这里插入图片描述
打开浏览器登录
在这里插入图片描述
4、无法连接获取broker信息
在这里插入图片描述
1)修改配置文件,名称路由地址为 namesrvAddr,例如我本机为
在与 rocketmq-console-ng-1.0.1.jar 同级的目录中新建config文件夹
在这里插入图片描述
将rocketmq-externals-master/rocketmq-console/src/main/resources/在的application.properties配置文件拷贝到config文件夹中

在这里插入图片描述

修改application.properties配置文件

rocketmq.config.namesrvAddr=192.168.0.101:9876

在这里插入图片描述
在这里插入图片描述修改后重启jar包

在这里插入图片描述

	6、注意:
		在阿里云,腾讯云或者虚拟机,记得检查端口号和防火墙是否启动

Springboot2.x整合RocketMQ4.x实战上集

简介:Springboot2.x整合RocketMQ4.x实战,加入相关依赖,开发生产者代码

启动nameser和broker

SpringBoot整合RocketMQ

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot整合RocketMQ发送事务消息的步骤如下: 首先,定义一个生产者类,使用@Component注解将其标记为一个组件,并使用@Autowired注解注入RocketMQTemplate实例。在该类中,可以编写一个sendMsg方法来发送消息。该方法接受两个参数,分别是topic和msg,使用MessageBuilder构建一个消息对象,并通过rocketMQTemplate的sendMessageInTransaction方法发送消息。需要注意的是,该方法的第一个参数要与@RocketMQTransactionListener注解中的txProducerGroup属性保持一致。\[1\] 其次,定义一个消费者类,使用@Component和@RocketMQMessageListener注解将其标记为一个组件,并指定topic和consumerGroup。该类需要实现RocketMQListener接口,并实现其中的onMessage方法,用于处理接收到的消息。\[2\] 最后,在引导类中使用@SpringBootApplication注解标记该类为Spring Boot应用程序的入口,并在main方法中调用SpringApplication的run方法启动应用程序。\[3\] 通过以上步骤,就可以在SpringBoot整合RocketMQ发送事务消息了。 #### 引用[.reference_title] - *1* *2* *3* [springboot 整合 rocketmq 发送事务消息](https://blog.csdn.net/weixin_42494845/article/details/109362030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值