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 

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

扫描二维码关注公众号,回复: 10645998 查看本文章

2.启动broker

nohup sh mqbroker -n 10.139.12.15:9876 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

发布了268 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yangshengwei230612/article/details/105291785