环境要求
1 我们下去RocketMQ官网下载
2 打开我们的虚拟机 把它拉到opt目录下 解压一下
3 进到rocketmq-all-4.4.0-bin-release目录下
cd rocketmq-all-4.4.0-bin-release/
4
1.启动NameServer 和Eureka差不多(提供了路由管理、服务注册、互相通信)
nohup sh bin/mqnamesrv &
2查看启动成功没 vi nohup.out
5 在启动Broker时可能会遇到启动失败的问题,这是因为RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小
vi runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
vi runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
配置好这两个配置文件 就可以启动 Broker
nohup sh mqbroker -n localhost:9876 &
然后编辑 nohup.out
vi nohuo.out
6 启动成功之后,开始测试
(1)发送消息
# 1.设置环境变量 export NAMESRV_ADDR=localhost:9876 暂时设置环境变量,永久生效还得改/etc/profile # 2.使用安装包的Demo发送消息 sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer |
(2) 接收消息
# 1.设置环境变量 export NAMESRV_ADDR=localhost:9876 # 2.接收消息 |
7 RocketMQ名词解释
- Topic(套配克)
消息主题,Topic是一种消息的逻辑分类,比如说你有订单类的消息,也有库存类的消息,那么就需要进行分类,就需要有两个Topic,一个是订单Topic存放订单相关的消息,一个是库存Topic存储库存相关的消息。
- Message
Message是消息。一个Message必须指定Topic,相当于寄信的地址。Message还有一个可选的Tag设置,以便消费端可以基于Tag进行过滤消息。也可以添加额外的键值对,例如你需要一个业务key来查找Broker上的消息,方便在开发过程中诊断问题。
- Message ID
消息的全局唯一标识,由消息队列 RocketMQ 版系统自动生成,唯一标识某条消息。
- Message Key
消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑。
- Tag(标签)
消息标签,二级消息类型,用来进一步区分某个 Topic 下的消息分类。一般在相同业务模块中通过引入标签来标记不同用途的消息。以天猫交易平台为例,订单消息和支付消息属于不同业务类型的消息,分别创建 Topic_Order 和 Topic_Pay,其中订单消息根据商品品类以不同的 Tag 再进行细分,列如电器类、男装类、女装类、化妆品类等被各个不同的系统所接收。
- Producer
消息生产者,也称为消息发布者,负责生产并发送消息。
- Producer 实例
Producer 的一个对象实例,不同的 Producer 实例可以运行在不同进程内或者不同机器上。Producer 实例线程安全,可在同一进程内多线程之间共享。
- Consumer
消息消费者,也称为消息订阅者,负责接收并消费消息。消费MQ上的消息的应用程序就是消费者,至于消息是否进行逻辑处理,还是直接存储到数据库等取决于业务需要。
- Consumer 实例
Consumer 的一个对象实例,不同的 Consumer 实例可以运行在不同进程内或者不同机器上。一个 Consumer 实例内配置线程池消费消息。
- Group
一类 Producer 或 Consumer,这类 Producer 或 Consumer 通常生产或消费同一类消息,且消息发布或订阅的逻辑一致。
- Group ID
Group 的标识。
- 队列
每个 Topic 下会由一到多个队列来存储消息。
- Broker
Broker是RocketMQ系统的主要角色,其实就是前面一直说的MQ。Broker接收来自生产者的消息,储存以及为消费者拉取消息的请求做好准备。
- Name Server
Name Server为Producer和Consumer 提供路由信息。NameServer可以看作是RocketMQ的注册中心
8 关闭RocketMQ
# 1.关闭NameServer sh bin/mqshutdown namesrv # 2.关闭Broker |
9 以上已经安转完成,下面安转可视化页面
(1) 下载路径
Tags · apache/rocketmq-externals · GitHub
2 修改配置文件(application.properties)看清楚路径
(3) 在当前项目的目录下指向命令:进行打包
mvn clean package -Dmaven.test.skip=true
如果没配置环境变量会出现错误
需要去系统属性里面编辑一下环境变量
然后在已有的Path里面加个%MAVEN_HOME%\bin
然后在输入一下指向命令:进行打包
mvn clean package -Dmaven.test.skip=true
打包完成之后target目录下有两个jar包
进行启动:
java -jar rocketmq-console-ng-1.0.1.jar
启动成功:
浏览器访问loaclhost:1016
当启动时连接不上远程RocketMQ时,需要先看一下系统环境变量是否配置,
# 1.设置环境变量
export NAMESRV_ADDR=localhost:9876
export NAMESRV_ADDR=localhost:9876(如果上面设置了就不需要了)
制作作品不宜,点个赞关注一下把!!
欢迎有安装问题来咨询