RocketMQ安装启动
文章目录
安装前准备
克隆一份虚拟机(centos 7)
-
修改hostname: vim /etc/hostname 中的主机名为rocketmqOS1
-
修改网络配置:vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="b8530891-d7b3-4db3-9c4a-4500c8f0070b" DEVICE="ens33" ONBOOT="yes" # 以下是新增配置 IPADDR=192.168.59.164 # IP地址 NETMASK=255.255.255.0 # 掩码和VMWare配置的保持一致 GATEWAY=192.168.59.2 #需要和VMWare配置的网关保持一致 DNS1=192.168.59.2
-
重启网络:service restart network
-
重启虚拟机:reboot
-
修改本地hosts文件:C:\Windows\System32\drivers\etc\hosts
192.168.59.164 rocketmqOS1 192.168.59.165 rocketmqOS2 192.168.59.166 rocketmqOS3
准备rocketmq安装包&jdk1.8安装包
rocketmq
-
点此下载->官网链接
-
解压:tar -zxvf 压缩文件 -C 解压目录
-
修改初始内存配置
-
修改配置${rocketmq_home}/bin/runserver.sh内存分配
原配置:
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
内存分配改小(真正的生产环境按照需求改,此处改小用于学习):
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
-
修改配置${rocketmq_home}/bin/runbroker.sh内存分配
原配置:
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
内存分配改小(真正的生产环境按照需求改,此处改小用于学习):
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m"
JavaSE Development Kit 8u202(jdk1.8)
rocketmq快速开始
原版->官网启动教程
启动namesrv
# 启动
$ nohup sh bin/mqnamesrv &
# 查看启动日志(出现:The Name Server boot success... 表示成功 )
$ tail -f ~/logs/rocketmqlogs/namesrv.log
# 查看进程(出现:NamesrvStartup)
$ jps
启动broker
# 启动
$ nohup sh bin/mqbroker -n localhost:9876 &
# 查看日志(出现boot success... 表示成功)
$ tail -f ~/logs/rocketmqlogs/broker.log
# 查看进程(出现:BrokerStartup)
$ jps
发送/接收消息测试
在发送/接收消息前,我们需要告诉客户端nameservers的位置。RocketMq提供了多种途径。简单起见,我们采用环境变量方式MAMESRV_ADDR
发送:
$ export NAMESRV_ADDR=localhost:9876
# 生产数据
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
# 发送消息broker响应结果 SendResult [sendStatus=SEND_OK, msgId=7F000001154454BEDEF2552856D503C3, offsetMsgId=C0A83BA400002A9F000000000002D1D2, messageQueue=MessageQueue [topic=TopicTest, brokerName=rocketmqOS1, queueId=3], queueOffset=240]
接收:
# 消费数据命令
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
# 消费数据结果 ConsumeMessageThread_20 Receive New Messages: [MessageExt [brokerName=rocketmqOS1, queueId=2, storeSize=192, queueOffset=34, sysFlag=0, bornTimestamp=1642395102813, bornHost=/192.168.59.164:59724, storeTimestamp=1642395102817, storeHost=/192.168.59.164:10911, msgId=C0A83BA400002A9F0000000000006712, commitLogOffset=26386, bodyCRC=636630719, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=250, CONSUME_START_TIME=1642395418069, UNIQ_KEY=7F000001154454BEDEF25528465D008A, CLUSTER=DefaultCluster, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 49, 51, 56], transactionId='null'}]]
关闭Servers
1. 关闭broker
$ sh bin/mqshutdown broker
2. 关闭namesrv
$ sh bin/mqshutdown namesrv
控制台安装启动(可视化dashboard)
下载dashborad工程
点此下载->github
修改配置文件application.properties
# 修改端口号
server.port=7000
# 修改namesrv地址(rocketmqOS1已经在hosts文件中配置)
rocketmq.config.namesrvAddr=rocketmqOS1:9876
添加pom.xml依赖
JAXB, Java Architechture for Xml Binding,用于XML绑定的Java技术,是一个业界的标准,是一项可以根据XML Schema生成Java类的技术
<!--导入依赖前先检查pom文件下是否有相同依赖,不要重复导入相同依赖-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
打包
在pom目录下打开cmd运行:mvn clean package -Dmaven.test.skip=true
启动
- 运行打包好的rocketmq-dashboard-1.0.0.jar(target目录下)程序:
$ java -jar rocketmq-dashboard-1.0.0.jar
- 访问localhost:7000即可