Linux下安装配置rocketmq

一、环境:

centos7(2台虚拟机)

apache-maven-3.2.5(官网要求maven版本是3.2.x,否则编译rocketmq时会有问题)

rocketmq-all-4.4.0

jdk1.8.0_161

二、安装maven

设置jdk、maven环境变量 vim  /etc/profile  ,添加如下代码,然后  source /etc/profile

(此处省略安装步骤~)

export JAVA_HOME=/opt/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

MAVEN_HOME=/opt/apache-maven-3.2.5
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

检查jdk、maven安装是否成功

[root@nameserver1 conf]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
[root@nameserver1 conf]# mvn -v
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-15T01:29:23+08:00)
Maven home: /opt/apache-maven-3.2.5
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /opt/jdk1.8.0_161/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"

三、 安装rocketmq

1、下载,解压文件: unzip rocketmq-all-4.4.0-source-release.zip,结果目录如下图

[root@nameserver2 opt]# ls
apache-maven-3.2.5  apache-maven-3.2.5-bin.tar.gz  jdk1.8.0_161  rh  rocketmq-all-4.4.0  rocketmq-all-4.4.0-source-release.zip

2、安装rocketmq

cd rocketmq-all-4.3.1
mvn -Prelease-all -DskipTests clean install -U

在执行最后一步的时候会去maven下载相关文件,境外网址下载比较慢。可以使用maven的国内镜像

修改maven的setting.xml文件

cd /opt/apache-maven-3.2.5/conf/
vim settings.xml

setting.xml

<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
  </mirrors>

编译有点慢,成功后结果如下图

 进到目录 cd distribution/target/apache-rocketmq

 启动namesrv服务:nohup sh bin/mqnamesrv &

 

启动Broker:nohup sh bin/mqbroker -n localhost:9876 &

 

 查看启动结果,通过进程、jps命令或者通过namesrv.log查看

 

四、测试 

#发送消息
[root@nameserver1 apache-rocketmq]# export NAMESRV_ADDR=localhost:9876 [root@nameserver1 apache-rocketmq]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer SendResult [sendStatus=SEND_OK, msgId=C0A8407B235F7D4991AD17087E7B00BB, offsetMsgId=C0A8407B00002A9F00000000000341C0, messageQueue=MessageQueue [topic=TopicTest, brokerName=nameserver1, queueId=1], queueOffset=296] #接收消息 [root@nameserver1 apache-rocketmq]# sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer ConsumeMessageThread_17 Receive New Messages: [MessageExt [queueId=2, storeSize=180, queueOffset=276, sysFlag=0, bornTimestamp=1583378432308, bornHost=/192.168.64.123:38275, storeTimestamp=1583378432311, storeHost=/192.168.64.123:10911, msgId=C0A8407B00002A9F0000000000030764, commitLogOffset=198500, bodyCRC=124332375, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='TopicTest', flag=0, properties={MIN_OFFSET=0, MAX_OFFSET=298, CONSUME_START_TIME=1583378851971, UNIQ_KEY=C0A8407B235F7D4991AD17087D340068, WAIT=true, TAGS=TagA}, body=[72, 101, 108, 108, 111, 32, 82, 111, 99, 107, 101, 116, 77, 81, 32, 49, 48, 52], transactionId='null'}]]

五、问题

启动时没有9876进程或者namesrv.log、broker.log 说明启动失败了,查看nohup.out 发下提示 "Cannot allocate memory"

 根据本机的内存,修改为合适大小即可

cd distribution/target/apache-rocketmq
vim bin/runserver.sh ## 原来的是 #JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" ## 修改成 JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=640m"

 vim bin/runbroker.sh
  ## 原来的是
  #JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
  ## 修改成
  JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m"

 补充一点bin的地址是 distribution/target/apache-rocketmq/bin

猜你喜欢

转载自www.cnblogs.com/maxmoore/p/12411779.html