RocketMQ

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

MQ=messege queue消息中间件

  • ActiveMQ:Apache,是java编写的,社区活跃度低,很少使用了
  • RabbitMQ:erlang=二郎发音编写,会这个语言的不多,定制化就难,集群只保证高可用,不能提高并发,10万并发
  • Kafka:开源的,Scala和java编写(Scala用了jvm),功能少(不支持死信,消息延迟等),100万并发,大数据实时计算和日志采集最佳,不遵守常见MQ协议,是自研的协议
  • RocketMQ:阿里对比kafka,取其精华,java编写,10万+并发,功能多,几乎全场景使用,不遵守常见MQ协议,是自研的协议

小哈学java文章中17个方面对比下来:Kafka和RocketMQ两个最牛逼。
备注:SpringCloudNetflix的时候只支持Kafka和RabbitMQ,其他都不支持。SpringCloudAlibaba支持所有,但是提倡用RocketMQ

精品文章(小哈学java全方位对比4大MQ)

本文主要说一下RocketMQ

一、概念

在这里插入图片描述
Topic是一类消息的集合,生产者可以发多种Topic消息,消费者只能消费一种Topic,一条消息只能属于一个主题。Topic:msg=1:n msg:Topic=1:1 P:Topic=1:N c:Topic =1:1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
磁盘阵列
在这里插入图片描述

二、工作原理

1、消息的生产

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

2、消息的存储

https://cdn2.processon.com/645720cbe4b0a981199cee6c?e=1683435228&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:jrOD7GXyoxPlqQ1n5Fv0-n5gZaI=
在这里插入图片描述
在这里插入图片描述

3、与kafka的对比

在这里插入图片描述

三、官网

官网 https://rocketmq.apache.org/

四、安装window4.8.0版本

打开官网,下载binary的对应版本,并且配置环境变量
在这里插入图片描述

cd  D:\Soft\RocketMQ\rocketmq-all-4.8.0-bin-release\bin
start mqnamesrv.cmd   --  启动nameserver,默认端口9876
start mqbroker.cmd  -n 127.0.0.1:9876  autoCreateTopicEnable=true     -- 启动broker

在这里插入图片描述
broker启动成功截图
在这里插入图片描述

五、安装linux4.8.0版本

cd /usr/local/rocketmq
unzip  rocketmq-all-4.8.0-bin-release.zip
cd  /usr/local/rocketmq/rocketmq-all-4.8.0-bin-release/bin
## nohup sh mqnamesrv  > namesrv.txt &     --  启动nameserver
nohup sh mqnamesrv &    --建议都放到/root/logs下统一管理,因为nacos等都在这边。
tail -f ~/logs/rocketmqlogs/namesrv.log   --查看日志
cd  /usr/local/rocketmq/rocketmq-all-4.8.0-bin-release/conf
vim broker.conf   --  最后一行增加一下nameserve的ip地址,就是本linux的ip地址  brokerIP1=172.16.0.18
cd  /usr/local/rocketmq/rocketmq-all-4.8.0-bin-release/bin 
--先改配置,默认堆内存8G太大了,改小为512m,512m,256m,最后Xmn是年轻代大小。
vim runbroker.sh
vim runserver.sh
## nohup sh mqbroker   -c ../conf/broker.conf -n 172.16.0.18:9876  autoCreateTopicEnable=true    > broker.txt &   --  -c是指定配置文件  -n指定nameserver
nohup sh mqbroker   -c ../conf/broker.conf -n 172.16.0.18:9876  autoCreateTopicEnable=true  &
tail -f ~/logs/rocketmqlogs/broker.log  
注意:坑    这个broker一直报错。所以得在/root/store  下面创建commitlog和consumequeue 文件夹
---------------------------------------------------上面为rocketmq启动完成
cd  /usr/local/rocketmq/rocketmq-all-4.8.0-bin-release/bin
sh mqshutdown broker
sh mqshutdown namesrv
----快速启动命令
cd  /usr/local/rocketmq/rocketmq-all-4.8.0-bin-release/bin
nohup sh mqnamesrv &
nohup sh mqbroker   -c ../conf/broker.conf -n 172.16.0.18:9876  autoCreateTopicEnable=true  &
tail -f ~/logs/rocketmqlogs/broker.log
---------------------------------------------------上面为rocketmq暂停关闭,也可以ps -ef  | grep mq 杀掉一堆mq进程

cd /usr/local/rocketmq
tar -zxvf rocketmq-dashboard-rocketmq-dashboard-1.0.0.tar.gz
cd /usr/local/rocketmq/rocketmq-dashboard-rocketmq-dashboard-1.0.0/src/main/resources
vim application.properties  -- 修改端口修改nameserver的ip地址端口号
cd /usr/local/rocketmq/rocketmq-dashboard-rocketmq-dashboard-1.0.0
mvn clean package -Dmaven.test.skip=true     --   maven打包成jar包
cd /usr/local/rocketmq/rocketmq-dashboard-rocketmq-dashboard-1.0.0/target     
nohup java -jar  rocketmq-dashboard-1.0.0.jar  &    -- 生产建议用黑洞命令,logback.xml指定好了目录,和上面的一起,都在 root/logs
---------------------------------------------------上面为console的安装和启动

增加nameserver的ip地址

在这里插入图片描述
改broker启动内存

在这里插入图片描述
修改端口修改nameserver的ip地址端口号
在这里插入图片描述
改内存

在这里插入图片描述
根据提示创建这两个文件夹
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝影铁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值