美文网首页MQ
linux下RocketMQ的安装

linux下RocketMQ的安装

作者: NickYS | 来源:发表于2018-05-22 14:04 被阅读0次

    下载和构建

    配置环境变量
    在/etc/profile最后添加

    JAVA_HOME=/soft/jdk1.8.0_111
    MAVEN_HOME=/soft/maven/apache-maven-3.5.3
    
    CLASSPATH=.:$JAVA_HOME/lib.tools.jar
    PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
    export JAVA_HOME MAVEN_HOME CLASSPATH PATH     
    
    export rocketmq=/soft/RocketMQ/rocketmq-rocketmq-all-4.2.0/distribution/target/apache-rocketmq
    

    使变量生效
    . /etc/profile

    https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip 下载 4.2.0 的源码版本,执行以下命令来解压4.2.0源码版本并构建二进制文件。

    unzip rocketmq-all-4.2.0-source-release.zip
    
    cd rocketmq-all-4.2.0/
    
    mvn -Prelease-all -DskipTests clean install -U
    

    构建成功

    linux下RocketMQ的安装

    由于可能会提示内存不足
    Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)

    调整一下 /soft/RocketMQ/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin目录下的
    runbroker.sh 和 runserver.sh的参数

    vi runbroker.sh/
    JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=256m"
    
    vi runserver.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"
    

    进入到目录 :
    cd distribution/target/apache-rocketmq/bin

    这里需要构建一个存放log的目录 /soft/RocketMQ/rocketmqlogs

    启动nameserver
    nohup sh mqnamesrv >/soft/RocketMQ/rocketmqlogs/mqnamesrv.log 2>&1 &

    启动broker
    nohup sh mqbroker -n localhost:9876 >/soft/RocketMQ/rocketmqlogs/broker.log 2>&1 &

    按照模版启动,模版的新建在文章最后,可以解决api连不上的问题
    nohup sh mqbroker -c broker.p -n localhost:9876 >/soft/RocketMQ/rocketmqlogs/broker.log 2>&1 &

    linux下RocketMQ的安装

    出现这样就是成功


    linux下RocketMQ的安装

    发送和接收消息
    在发送/接收消息之前,我们需要告诉客户名称服务器的位置。RocketMQ 提供了多种方法来实现这一点。为了简单起见,我们使用环境变量NAMESRV_ADDR

    发送消息:

    export NAMESRV_ADDR=localhost:9876
    
    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
    
    linux下RocketMQ的安装

    接收消息

    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

    linux下RocketMQ的安装

    关闭服务器

    sh bin/mqshutdown broker    //停止 broker
    
    sh bin/mqshutdown namesrv   //停止 nameserver
    
    linux下RocketMQ的安装

    几个常用的命令
    上面几个启动和关闭 name server 和 broker 的就不再说了,

    查看集群情况 ./mqadmin clusterList -n 127.0.0.1:9876
    查看 broker 状态 ./mqadmin brokerStatus -n 127.0.0.1:9876 -b 172.20.1.138:10911 (注意换成你的 broker 地址)
    查看 topic 列表 ./mqadmin topicList -n 127.0.0.1:9876
    查看 topic 状态 ./mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic (换成你想查询的 topic)
    查看 topic 路由 ./mqadmin topicRoute -n 127.0.0.1:9876 -t MyTopic

    ===================================================================
    安装web可视化客户端

    1.下载文件(/usr/local目录下)
    https://github.com/apache/rocketmq-externals 地址下载并从本地上传到服务器

    2.解压(/usr/local目录下)

    yum install -y unzip zip 前提是:unzip解压文件无法使用

    unzip rocketmq-externals-master.zip 解压文件

    3.修改配置文件(usr/local/rocketmq-externals-master/目录下)

    find -name application.properties 可以查看到两个文件都在rocketmq-console文件目录下

    vim application.properties

    rocketmq.config.namesrvAddr=192.168.143.128:9876(ip1:port;ip2:port)

    4.编译(usr/local/rocketmq-externals-master/rocketmq-console/目录下)

    mvn clean package -Dmaven.test.skip=true 如果失败多编译几次--可能是网络问题

    linux下RocketMQ的安装

    编译成功后,在rocketmq-console目录下会生成一个目录:target目录,该目录下有启动rocketmq界面的jar文件

    5.启动web(usr/local/rocketmq-externals-master/rocketmq-console/target目录下)

    java -jar rocketmq-console-ng-1.0.0.jar 启动 ---当终端断了该服务就会停止

    nohup java -jar rocketmq-console-ng-1.0.0.jar >>/soft/RocketMQ/rocketmqlogs/log.out 2>&1 &
    后台启动 --当终端断了也不会停止服务

    linux下RocketMQ的安装

    说明启动成功

    http://192.168.143.128:8080

    linux下RocketMQ的安装

    ==================================================================

    用java代码实现API的过程中需要注意的几个问题

    1、出现connect to 172.17.42.1:10909 failed
    原因分析:我第一次使用的是rocketmq-client-3.4.6,第二次使用的是rocketmq-client-3.5.7,都出现了这个问题。但是原来使用rocketmq-client-3.2.5却不会出现这个问题。
    (1)目前这种写法Rocket默认开启了VIP通道,VIP通道端口为10911-2=10909。若Rocket服务器未启动端口10909,则报connect to <:10909> failed。
    (2)解决方式:增加一行代码
    producer.setVipChannelEnabled(false);

    linux下RocketMQ的安装

    2、出现connect to 172.17.42.1:10911 failed
    还是外网内网ip的问题
    最后经过多方搜索,在官方的用户说明里看到下面的方法
    在bin目录下面配置模版

    linux下RocketMQ的安装

    修改后的broker.p文件

    namesrvAddr=127.0.0.1:9876
    brokerIP1=192.168.143.128
    brokerName=localhost
    brokerClusterName=DefaultCluster
    brokerId=0
    autoCreateTopicEnable=true
    autoCreateSubscriptionGroup=true
    rejectTransactionMessage=false
    fetchNamesrvAddrByAddressServer=false
    storePathRootDir=/root/store
    storePathCommitLog=/root/store/commitlog
    flushIntervalCommitLog=1000
    commitIntervalCommitLog=1000
    flushCommitLogTimed=false
    deleteWhen=04
    fileReservedTime=72
    maxTransferBytesOnMessageInMemory=262144
    maxTransferCountOnMessageInMemory=32
    maxTransferBytesOnMessageInDisk=65536
    maxTransferCountOnMessageInDisk=8
    accessMessageInMemoryMaxRatio=40
    messageIndexEnable=true
    messageIndexSafe=false
    haMasterAddress=
    brokerRole=ASYNC_MASTER
    flushDiskType=ASYNC_FLUSH
    cleanFileForciblyEnable=true
    transientStorePoolEnable=false
    

    启动broker的时候用规定的模版文件
    nohup sh mqbroker -c broker.p -n localhost:9876 &gt;/soft/RocketMQ/rocketmqlogs/broker.log 2&gt;&1 &

    相关文章

      网友评论

        本文标题:linux下RocketMQ的安装

        本文链接:https://www.haomeiwen.com/subject/eqbhjftx.html