zoukankan      html  css  js  c++  java
  • Linux RocketMQ安装配置和使用,Centos7 RocketMQ4安装配置

    Linux RocketMQ安装配置和使用,Centos7 RocketMQ4安装配置

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

    ©Copyright 蕃薯耀 2020-12-28

    https://www.cnblogs.com/fanshuyao/

    一、RocketMQ解压安装

    1、将rocketmq的二进制文件上传到linux服务器目录(cd /java):

    rocketmq-all-4.8.0-bin-release.zip

    2、解压RocketMQ:

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

    提示unzip未找到命令:

    [root@host_132 java]# unzip rocketmq-all-4.8.0-bin-release.zip 
    -bash: unzip: 未找到命令

    3、Linux安装unzip和zip命令:

    yum install -y unzip
    yum install -y zip

    4、重新解压RocketMQ:

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

    5、解压后,修改文件夹的名称,改短一点:

    mv rocketmq-all-4.8.0-bin-release rocketmq4

    查看rocketmq4下的文件:

    [root@host_132 java]# cd rocketmq4/
    [root@host_132 rocketmq4]# ll
    总用量 40
    drwxr-xr-x. 2 root root   102 12月  9 19:46 benchmark
    drwxr-xr-x. 3 root root  4096 12月  4 14:26 bin
    drwxr-xr-x. 6 root root   211 12月  4 14:26 conf
    drwxr-xr-x. 2 root root  4096 12月  9 19:46 lib
    -rw-r--r--. 1 root root 17336 10月 23 10:29 LICENSE
    -rw-r--r--. 1 root root  1338 12月  4 14:26 NOTICE
    -rw-r--r--. 1 root root  5132 12月  4 14:26 README.md

    二、RocketMQ配置环境变量

    1、配置rocketMQ运行的环境变量,简化命令,不用拼写完整路径:

    vim /etc/profile

    2、在文件的最后加上(记得要先装jdk8,因为RocketMQ是Java开发,依赖jdk8):

    ROCKETMQ_HOME=/java/rocketmq4
    PATH=$PATH:$ROCKETMQ_HOME/bin
    export ROCKETMQ_HOME PATH

    3、让环境变量配置立即生效:

    source /etc/profile

    三、RocketMQ日志文件修改

    1、备份日志文件(修改前最好先备份):

    cp /java/rocketmq4/conf/logback_broker.xml /java/rocketmq4/conf/logback_broker.xml.bak
    cp /java/rocketmq4/conf/logback_namesrv.xml /java/rocketmq4/conf/logback_namesrv.xml.bak
    cp /java/rocketmq4/conf/logback_tools.xml /java/rocketmq4/conf/logback_tools.xml.bak

    2、修改日志的文件存放的目录位置,默认是在${user.home},如root用户在root目录,其他用户在home目录:

    sed -i "s/${user.home}//java/rocketmq4/g" logback_broker.xml
    sed -i "s/${user.home}//java/rocketmq4/g" logback_namesrv.xml
    sed -i "s/${user.home}//java/rocketmq4/g" logback_tools.xml

    修改后日志存放位置:
    /java/rocketmq4/logs/rocketmqlogs

    四、RocketMQ启动和运行时配置文件修改

    1、RocketMQ启动mqnamesrv,其中&符号表示后台运行

    nohup sh mqnamesrv &

    运行结果:

    [root@host_132 bin]# nohup sh mqnamesrv &
    [1] 1619
    [root@host_132 bin]# nohup: 忽略输入并把输出追加到"nohup.out"

    2、启动后,使用jps查看Java进程(rocketMQ是Java开发的),如果没发现有mqnamesrv的进程,说明启动失败(RocketMQ默认设置的内存过大导致启动失败)
    解决方案,需要修改配置文件:

    runserver.sh
    runbroker.sh

    runserver.sh:为nameService运行的配置
    runbroker.sh:为broker运行的配置

    3、RocketMQ NameServer内存过大启动失败,修改runserver.sh:

    vim /java/rocketmq4/bin/runserver.sh

    默认配置的内存很大,但虚拟机的内存是比较小的(如1G),内存不够导致rocketMQ启动失败:

    JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

    修改成(可以修改成256m):

    JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=100m"

    4、RocketMQ Broker内存过大启动失败,修改runserver.sh:

    vim /java/rocketmq4/bin/runbroker.sh

    默认配置的内存很大:

    JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"

    修改成(可以修改成256m):

    JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

    5、再次启动mqnamesrv:

    nohup sh mqnamesrv &

    出现NamesrvStartup表示已经正常启动:

    [root@host_132 bin]# jps
    1859 NamesrvStartup
    1909 Jps

    查看启动日志(root用户日志放在:/root/logs/rocketmqlogs,其它用户放在/home/logs/rocketmqlogs):

    tail -f /java/rocketmq4/logs/rocketmqlogs/namesrv.log

    日志内容如下(重要的是:The Name Server boot success. serializeType=JSON):

    [root@host_132 bin]# tail -f ~/logs/rocketmqlogs/namesrv.log
    2020-12-24 15:37:49 INFO main - Using OpenSSL provider
    2020-12-24 15:37:50 INFO main - SSLContext created for server
    2020-12-24 15:37:50 INFO main - Try to start service thread:FileWatchService started:false lastThread:null
    2020-12-24 15:37:50 INFO NettyEventExecutor - NettyEventExecutor service started
    2020-12-24 15:37:50 INFO main - The Name Server boot success. serializeType=JSON
    2020-12-24 15:37:50 INFO FileWatchService - FileWatchService service started
    2020-12-24 15:38:50 INFO NSScheduledThread1 - --------------------------------------------------------
    2020-12-24 15:38:50 INFO NSScheduledThread1 - configTable SIZE: 0
    2020-12-24 15:48:50 INFO NSScheduledThread1 - --------------------------------------------------------
    2020-12-24 15:48:50 INFO NSScheduledThread1 - configTable SIZE: 0

    6、RocketMQ启动broker,需要指定mqnamesrv,默认端口是9876

    nohup sh mqbroker -n localhost:9876 &

    查看进程,出现BrokerStartup表示启动成功:

    [root@host_132 bin]# jps
    1859 NamesrvStartup
    1990 BrokerStartup
    2118 Jps

    查看启动日志:

    tail -f /java/rocketmq4/logs/rocketmqlogs/broker.log

    五、测试rocketMQ发送消息和接收消息(先进入bin目录)

    1、发送消息:

    #先设置临时环境变量
    export NAMESRV_ADDR=localhost:9876 
    
    #产生消息
    sh tools.sh org.apache.rocketmq.example.quickstart.Producer

    2、接收消息

    export NAMESRV_ADDR=localhost:9876 
    
    sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

    六、关闭rocketMQ

    关闭rocketMQ的命令:

    sh mqshutdown broker
    
    sh mqshutdown namesrv

    结果:

    [root@host_132 bin]# sh mqshutdown broker
    The mqbroker(1986
    1990) is running...
    Send shutdown 
    
    [root@host_132 bin]#
    sh mqshutdown namesrv The mqnamesrv(1844 1859) is running... Send shutdown request to mqnamesrv(1844 1859) OK

     七、Linux RocketMQ双主双从,Centos7 RocketMQ4集群(双主双从)

    地址见:

    https://www.cnblogs.com/fanshuyao/p/14200573.html

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

    ©Copyright 蕃薯耀 2020-12-28

    https://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    javaScript -- touch事件详解(touchstart、touchmove和touchend)
    PHP 报错--Array to string conversion,请用print_r() 来输出数组
    PHP微信商户支付
    解决问题:CA_ERROR证书出错,请登录微信支付商户平台下载证书-企业付款到零钱接口(原创)
    写毕业设计论文或写书关于参考文献的一些原则
    分享腾讯云的Linux服务器连接速度很慢的解决心得(原创)
    Linux 实时性能测试工具——Cyclictest【转】
    Linux Kernel中获取当前目录方法(undone)【转】
    Linux kernel 绝对路径之d_path篇【转】
    linux内核获取进程的全路径3种方法【转】
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/14200170.html
Copyright © 2011-2022 走看看