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调用
		上下游对接,数据源变动->通知下属

SpringBoot2.x整合RocketMQ_第1张图片

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

	JMS消息通常有两种类型:点对点(Point-to-Point)、发布/订阅(Publish/Subscribe)
  • 点对点 (单一系统)
    SpringBoot2.x整合RocketMQ_第2张图片
  • 发布/订阅

SpringBoot2.x整合RocketMQ_第3张图片
5、编程模型
MQ中需要用的一些类
ConnectionFactory :连接工厂,JMS 用它创建连接
Connection :JMS 客户端到JMS Provider 的连接
Session: 一个发送或接收消息的线程
Destination :消息的目的地;消息发送给谁.
MessageConsumer / MessageProducer: 消息接收者,消费者

SpringBoot2.x整合RocketMQ_第4张图片

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:给生产和消费者提供路由信息,提供轻量级的服务发现和路由		

SpringBoot2.x整合RocketMQ_第5张图片

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/
SpringBoot2.x整合RocketMQ_第6张图片
SpringBoot2.x整合RocketMQ_第7张图片
SpringBoot2.x整合RocketMQ_第8张图片

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

1.启动namesrv

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

SpringBoot2.x整合RocketMQ_第9张图片

查看日志

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

SpringBoot2.x整合RocketMQ_第10张图片
或者 查看启动的java程序

ps -ef | grep java 

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

2.启动broker

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

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

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

SpringBoot2.x整合RocketMQ_第11张图片
SpringBoot2.x整合RocketMQ_第12张图片

3.发送/接收数据

Send & Receive Messages

发送数据

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

SpringBoot2.x整合RocketMQ_第13张图片

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

接收消息

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

SpringBoot2.x整合RocketMQ_第14张图片

常见问题解决:

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

SpringBoot2.x整合RocketMQ_第15张图片
SpringBoot2.x整合RocketMQ_第16张图片

mva打包命令

mvn clean package -Dmaven.test.skip=true

SpringBoot2.x整合RocketMQ_第17张图片
3、target目录 通过java -jar的方式运行

SpringBoot2.x整合RocketMQ_第18张图片
默认端口号为8080
使用浏览器输入:10.139.12.149:8080
如果8080 端口号被占用 可以在启动jar包时指定端口号
在这里插入图片描述
打开浏览器登录
SpringBoot2.x整合RocketMQ_第19张图片
4、无法连接获取broker信息
SpringBoot2.x整合RocketMQ_第20张图片
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

SpringBoot2.x整合RocketMQ_第21张图片
SpringBoot2.x整合RocketMQ_第22张图片修改后重启jar包

SpringBoot2.x整合RocketMQ_第23张图片

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

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

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

启动nameser和broker

SpringBoot整合RocketMQ

你可能感兴趣的:(#,RockeMQ)