【安装配置RocketMQ】

简介: • 安装与配置RocketMQ• gitCode分享• RocketMQ源码版本下载地址:• Rocketmq控制台下载地址:• 百度网盘分享• 官方下载地址

文章目录



安装与配置RocketMQ


gitCode分享


RocketMQ源码版本下载地址:


https://gitcode.net/java_wxid/rocketmq-all-4.7.1-source-release/-/tree/master


Rocketmq控制台下载地址:


https://gitcode.net/java_wxid/rocketmq-externals-master/-/tree/master/rocketmq-console


百度网盘分享


RocketMQ运行版本下载地址:

链接:https://pan.baidu.com/s/1mqfO8bpQs0yTnX6oeOsPCA?pwd=2022

提取码:2022

RocketMQ源码版本下载地址:

链接:https://pan.baidu.com/s/1NbgSuv89uSgtYALRzSYr0w?pwd=2022

提取码:2022


官方下载地址


RocketMQ运行版本下载地址:

https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip

RocketMQ源码版本下载地址:

https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-source-release.zip


安装配置


查看linux版本


uname -a


创建一个操作用户


用来运行自己的程序,与root用户区分开。使用root用户创建一个oper用户,并给他创建一个工作目录,设置用户密码


useradd liaozhiwei
passwd liaozhiwei
mkdir /opt/rocketmq
cd /opt/rocketmq
chown liaozhiwei:liaozhiwei /opt/rocketmq


运行RocketMQ需要先安装JDK。我们采用目前最稳定的JDK1.8版本。可以自行去Oracle官网上下载也可以使用我从官网拉下来的jdk版本。

链接:https://pan.baidu.com/s/10YA9SBV7Y6TKJ9keBrNVWw?pwd=2022

提取码:2022

然后用FTP或者WSP上传到liaozhiwei用户的工作目录下。由liaozhiwei用户解压到/opt/jdk目录下。


tar -zxvf jdk-8u301-linux-x64.tar.gz


继续上传RocketMQ到/opt/rocketmq目录下,由于我们上传的包是zip的包,解压需要通过解压工具,所以我们安装一个


yum install unzip zip


然后解压


unzip rocketmq-all-4.7.1-bin-release.zip


配置环境变量。使用vim /etc/profile编辑文件,在文件尾部添加以下内容


###java环境配置
export JAVA_HOME=/opt/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=./:JAVA_HOME/lib:$JRE_HOME/lib
###RocketMQ环境配置
export ROCKETMQ_HOME=/opt/rocketmq
###path
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH


编辑完成后,通过:wq保存退出,执行source /etc/profile让环境变量生效。输入java -version能查看到以下内容表明JDK安装成功了。

ROCKETMQ_HOME的环境变量是必须要单独配置的,如果不配置的话,启动NameSever和Broker都会报错。

这个环境变量的作用是用来加载$ROCKETMQ_HOME/conf下的除broker.conf以外的几个配置文件。所以实际情况中,可以不按这个配置,但是一定要能找到配置文件。


启动NameServer


启动NameServer非常简单, 在$ROCKETMQ_HOME/bin目录下有个mqnamesrv。直接执行这个脚本就可以启动RocketMQ的NameServer服务。


但是要注意,RocketMQ默认预设的JVM内存是4G,这是RocketMQ给我们的最佳配置。但是通常我们用虚拟机的话都是不够4G内存的,所以需要调整下JVM内存大小。修改的方式是直接修改runserver.sh。 用


vim /opt/rocketmq/bin/runserver.sh


编辑这个脚本,修改jdk配置的路径,同时在脚本中找到这一行调整内存大小为512M


f364d8c562f24ddfb55f2962425d95df.png


JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -
XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"


授权


chmod 777 /opt/rocketmq/bin/mqnamesrv


然后我们用静默启动的方式启动NameServer服务:


nohup /opt/rocketmq/bin/mqnamesrv > /opt/rocketmq/nameServerLog 2>&1 &


启动完成后,在nohup.out里看到这一条关键日志就是启动成功了。并且使用jps指令可以看到有一个NamesrvStartup进程。


cat /opt/rocketmq/nameServerLog


e48974f8a2014fb6af8bf3f4f1dd30f9.png



主要尽量将文件夹的名字进行调整,不用多余的特殊字符



启动Broker


启动Broker的脚本是runbroker.sh。Broker的默认预设内存是8G,启动前,如果内存不够,同样需要调整下JVM内存。


vim /opt/rocketmq/bin/runbroker.sh


找到这一行,进行内存调整


50f73fb17b294a158501a5e393fc5986.png


JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"


然后我们需要找到$ROCKETMQ_HOME/conf/broker.conf, vim指令进行编辑,在最下面加入一个配置:


vim /opt/rocketmq/conf/broker.conf
brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=0
namesrvAddr=192.168.160.128:9876
brokerIP1 = 192.168.160.128
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=/opt/rocketmq/store
storePathCommitLog=/opt/rocketmq/store/commitlog
storePathConsumeQueue=/opt/rocketmq/store/consumequeue
storePathIndex=/opt/rocketmq/store/index
storeCheckpoint=/opt/rocketmq/store/checkpoint
abortFile=/opt/rocketmq/store/abort
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
brokerRole=SYNC_MASTER
flushDiskType=SYNC_FLUSH
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128


授权


chmod 777 /opt/rocketmq/bin/mqbroker


然后也以静默启动的方式启动runbroker.sh


nohup /opt/rocketmq/bin/mqbroker -c /opt/rocketmq/conf/broker.conf -n 192.168.160.128:9876 > /opt/rocketmq/brokerlog 2>&1 &


启动完成后,同样是检查nohup.out日志,有这一条关键日志就标识启动成功了。 并且jps指令可以看到一个BrokerStartup进程。


6739e33fe87346fd9416c0e8cebae59e.png


查看brokerlog日志文件


cat /opt/rocketmq/brokerlog


1f08ae39b98a42459079573c344424b3.png


在观察runserver.sh和runbroker.sh时,我们还可以查看到其他的JVM执行参数,这些参数都可以进行定制。例如我们观察到一个比较有意思的地方,nameServer使用的是CMS垃圾回收器,而Broker使用的是G1垃圾回收器。


命令行快速验证


在RocketMQ的安装包中,提供了一个tools.sh工具可以用来在命令行快速验证RocketMQ服务。我们在worker2上进入RocketMQ的安装目录:

授权命令


chmod 777 /opt/rocketmq/bin/tools.sh


编辑tool.sh文件


vim /opt/rocketmq/bin/tools.sh


eb7376eec43b4fdebb88fe8024f8c517.png


修改jdk配置路径 添加NameServer环境变量

export NAMESRV_ADDR=192.168.160.128:9876

然后启动消息生产者发送消息:默认会发1000条消息

 /opt/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer


我们可以看到发送消息的日志:


ab7dedf476e74c2e96fef57fa81b89a5.png


这日志中,上面部分就是我们发送的消息的内容。后面两句标识消息生产者正常关闭。


然后启动消息消费者接收消息:


export NAMESRV_ADDR=192.168.160.128:9876
/opt/rocketmq/bin/tools.sh  org.apache.rocketmq.example.quickstart.Consumer


启动后,可以看到消费到的消息。


7932d16ac2d1489396e06fc1ac98cb74.png


日志中MessageExt后的整个内容就是一条完整的RocketMQ消息。我们要对这个消息的结构有个大概的了解,后面会对这个消息进行深入的理解。


其中比较关键的属性有:brokerName,queueId,msgId,topic,cluster,tags,body,transactionId。先找下这些属性在哪里。


而这个Consume指令并不会结束,他会继续挂起,等待消费其他的消息。我们可以使用CTRL+C停止该进程。


关闭RocketMQ服务


要关闭RocketMQ服务可以通过mqshutdown脚本直接关闭


授权


chmod 777 /opt/rocketmq/bin/mqshutdown
• 1

1.关闭NameServer

sh /opt/rocketmq/bin/mqshutdown namesrv

2.关闭Broker

sh /opt/rocketmq/bin/mqshutdown broker
• 1

注意事项:


8d0e84f8f6f44002a5c3a43c485158d2.png


防火墙端口开放


firewall-cmd --add-port=10911/tcp --permanent
firewall-cmd --add-port=9876/tcp --permanent
firewall-cmd --add-port=10912/tcp --permanent
firewall-cmd --add-port=10909/tcp --permanent
firewall-cmd --reload    


相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 物联网 Java
MQTT常见问题之微消息队列配置失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
消息中间件 数据可视化 大数据
【如何安装和配置RabbitMQ(转载)】
【如何安装和配置RabbitMQ(转载)】
263 2
|
消息中间件 网络安全 RocketMQ
消息队列 MQ产品使用合集之配置controller时,出现无法选举master,该怎么解决
阿里云消息队列MQ(Message Queue)是一种高可用、高性能的消息中间件服务,它允许您在分布式应用的不同组件之间异步传递消息,从而实现系统解耦、流量削峰填谷以及提高系统的可扩展性和灵活性。以下是使用阿里云消息队列MQ产品的关键点和最佳实践合集。
245 0
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置
|
消息中间件 Kafka
面试题Kafka问题之RabbitMQ的路由配置工作如何解决
面试题Kafka问题之RabbitMQ的路由配置工作如何解决
389 57
|
消息中间件 PHP 数据安全/隐私保护
docker安装rabbitmq并配置hyperf使用
通过以上步骤,您可以实现在Docker容器中安装和配置RabbitMQ,并在PHP的Hyperf框架中进行集成和使用。这种方式为开发者提供了快速部署并实现消息队列解决方案的能力,同时维持了环境与生产环境的一致性,从而为开发高效的分布式应用程序提供了便利。
610 3
docker安装rabbitmq并配置hyperf使用
ly~
|
消息中间件 搜索推荐 大数据
一般情况下在 RocketMQ 中添加 access key 的步骤: 一、确定配置文件位置 RocketMQ 的配置文件通常位于安装目录下的 conf 文件夹中。你需要找到 broker.conf 或相关的配置文件。 二、编辑配置文件 打开配置文件,查找与 ACL(访问控制列表)相关的配置部分。 在配置文件中添加以下内容:
大数据广泛应用于商业、金融、医疗和政府等多个领域。在商业上,它支持精准营销、客户细分及流失预测,并优化供应链管理;金融领域则利用大数据进行风险评估、市场预测及欺诈检测;医疗行业通过大数据预测疾病、提供个性化治疗;政府运用大数据进行城市规划和公共安全管理;工业领域则借助大数据进行设备维护、故障预测及质量控制。
ly~
1054 2
|
消息中间件 传感器 负载均衡
消息队列 MQ使用问题之如何配置一主一从的同步复制模式
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
消息队列 MQ使用问题之如何配置一主一从的同步复制模式
|
消息中间件 设计模式 网络安全
消息队列 MQ操作报错合集之broker启用controller配置时,遇到报错,是什么导致的
在使用消息队列MQ时,可能会遇到各种报错情况。以下是一些常见的错误场景、可能的原因以及解决建议的汇总:1.连接错误、2.消息发送失败、3.消息消费报错、4.消息重试与死信处理、5.资源与权限问题、6.配置错误、7.系统资源限制、8.版本兼容性问题。
431 1
|
消息中间件 SQL 监控
RocketMQ 5.3.0 版本中 Broker IP 配置为 IPv6 的情况
【8月更文第28天】RocketMQ 是一款分布式消息中间件,支持多种消息发布和订阅模式。在 RocketMQ 5.3.0 版本中,Broker 的配置文件 `broker.conf` 允许配置 IPv6 地址。当 Broker 的 `brokerIP1` 配置为 IPv6 地址时,会对 Broker 的启动、消息推送和状态监控等方面产生影响。本文将探讨如何在 RocketMQ 中配置 IPv6 地址,并检查 Broker 的状态。
1330 0