rocketmq及控制台搭建

本文详细介绍了如何在Linux环境下搭建RocketMQ,包括前置的JDK安装,RocketMQ的架构、下载、配置与启动,以及解决启动时可能遇到的JAVA_HOME问题。此外,文章还讲解了如何搭建和使用RocketMQ的控制台,包括拉取项目、配置、启动以及通过API访问控制台。

前置·yum安装JDK1.8(openjdk)

  • 先检查系统自带jdk
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj
  • 批量卸载系统自带所有带有Java的文件
rpm -qa | grep java | xargs rpm -e --nodeps 
  • 安装java
yum list java*
yum list java-1.8*
yum install java-1.8.0-openjdk* -y
java -version
  • 如果有类似如下的JAVA_HOME注释掉
  • /usr/bin 目录下已经有java执行文件了,无需在配置
vi /etc/profile

	#set java environment
	#JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64
	#PATH=$PATH:$JAVA_HOME/bin
	#CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
	#export JAVA_HOME CLASSPATH PATH
	
source /etc/profile

rocketmq搭建

架构

在这里插入图片描述

  • Producer:就是消息生产者,可以集群部署。它会先和 NameServer 集群中的随机一台建立长连接,得知当前要发送的 Topic 存在哪台 Broker Master上,然后再与其建立长连接,支持多种负载平衡模式发送消息。

  • Consumer:消息消费者,也可以集群部署。它也会先和 NameServer 集群中的随机一台建立长连接,得知当前要消息的 Topic 存在哪台 Broker Master、Slave上,然后它们建立长连接,支持集群消费和广播消费消息。

  • Broker:主要负责消息的存储、查询消费,支持主从部署,一个 Master 可以对应多个 Slave,Master 支持读写,Slave 只支持读。Broker 会向集群中的每一台 NameServer 注册自己的路由信息。

  • NameServer:是一个很简单的 Topic 路由注册中心,支持 Broker 的动态注册和发现,保存 Topic 和 Borker 之间的关系。通常也是集群部署,但是各 NameServer 之间不会互相通信, 各 NameServer 都有完整的路由信息,即无状态。

下载

配置

unzip rocketmq-all-4.4.0-bin-release.zip
  • 编辑runbroker.sh和runserver.sh修改默认JVM大小
cd rocketmq-all-4.4.0-bin-release/bin/

vi runbroker.sh
vi runserver.sh

# 参考设置
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -xx:MetaspaceSize=128m xx:MaxMetaspaceSize=320m"

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

使用

停止服务

防止之前服务器跑过该服务,先执行停止命令

sh mqshutdown broker
sh mqshutdown namesrv

启动服务

nohup sh mqnamesrv &  # 本地启动NameServer
nohup sh mqnamesrv  -n "xxx.xxx.xxx.xxx:9876" &  # 外网启动NameServer
tail -f ~/logs/rocketmqlogs/namesrv.log  # 查看日志

	The Name Server boot success. serializeType=JSON  表示启动成功
nohup sh mqbroker -n localhost:9876 &  # 本地部署NBroker
echo 'brokerIP1=xxx.xxx.xxx.xxx' > ../conf/broker.properties  # 外网部署Broker
nohup sh mqbroker -n localhost:9876 -c ../conf/broker.properties autoCreateTopicEnable=true &   # 外网部署Broker
tail -f ~/logs/rocketmqlogs/broker.log  # 查看日志

	register broker[0]to name server localhost:9876 OK  表示启动成功

如果报错ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)!!!

  • 修改 runbroker.sh 和 runserver.sh 2个文件
  • 这三行注释掉
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
  • 将 export JAVA_HOME替换为export JAVA_HOME=JAVA_HOME中的路径
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64"

关于nohup

  • nohup
    如果你正在运行一个进程,而且你觉得在退出帐户时或者关闭客户端该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
    nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思
  • &
    指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出
  • nohup COMMAND &
    这样能使命令永久的在后台执行,nohup可以使用Ctrl+C结束掉,而&使用Ctrl+C则结束不掉,nohup不受终端关闭,用户退出影响,而&则受终端关闭,用户退出影响

开启端口:10911 10912 10909 9876

  • 使用PowerShell测试外网端口是否开启
> Test-NetConnection xxx.xxx.xxx.xxx -port 9876
> Test-NetConnection xxx.xxx.xxx.xxx -port 10909

rocketmq控制台搭建

rocketmq-console

  • RocketMQ有一个对其扩展的开源项目,incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-console。这个便是管理控制台项目。步骤是先将incubator-rocketmq-externals从git拉到本地,然后对rocketmq-console进行操作(编译打包运行)

拉取项目

git clone https://github.com/SummerUnfair/rocketmq-externals.git

配置及使用

修改并启动rocketmq-console工程

  • 在rocketmq-console中配置namesrc集群地址
    在这里插入图片描述

  • 命令窗口进入rocketmq-console工程目录进行打包

> clean package -Dmaven.test.skip=true
  • 运行rokcetmq-console工程
> java -jar rocketmq-console-ng-1.0.0.jar

在这里插入图片描述

访问控制台

  • 浏览器访问地址
http://localhost:8080/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wangjinkui

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

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

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

打赏作者

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

抵扣说明:

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

余额充值