zoukankan      html  css  js  c++  java
  • RocketMQ

    1.RocketMQ概述
    RocketMQ产品支持集群,效率高,同时支持上万队列,支持消息持久化,重试机制等等


    2.RocketMQ原理

    有别于其他消息中间件由broker做负载均衡并主动向consumer投递消息,RocketMq是基于拉模式拉取消息,consumer做负载均衡并通过长轮询向broker拉消息。

    Consumer消费拉取的消息的方式有两种

    1.      Push方式:rocketmq已经提供了很全面的实现,consumer通过长轮询拉取消息后回调MessageListener接口实现完成消费,应用系统只要MessageListener完成业务逻辑即可
    
    2.      Pull方式:完全由业务系统去控制,定时拉取消息,指定队列消费等等,当然这里需要业务系统去根据自己的业务需求去实现



    .安装RocketMQ
    1.安装JDK
    1.1 检查当前虚拟机环境有没有JDK rpm -qa|grep java
    1.2 卸载 rpm -e --nodeps xxxxxx
    1.3 安装JDK
    在/usr/local新建一个java文件夹,然后将tar包上传到文件夹下
    切换到/usr/local/java 使用tar -zxvf xxx解压
    配置/etc/profile文件,加入JDK环境变量
    export JAVA_HOME=/usr/local/java/jdk1.8.0_121 替换自己路径
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$PATH
    应用文件 source /etc/profile
    使用java -version查看版本

    2.安装RocketMQ
    2.1 配置/etc/hosts文件
    192.168.7.11 rocketmq-nameserver1
    192.168.7.11 rocketmq-master1
    192.168.7.22 rocketmq-nameserver2
    192.168.7.22 rocketmq-master2
    2.2 重新网卡 service network restart

    2.3 上传rocketmq压缩包,上传到/usr/local下
    2.4 切换到/usr/local下解压rocketmq压缩包 tar -zxvf xxxxxx
    2.5 更改解压文件夹名称
    mv alibaba-rocketmq alibaba-rocketmq-3.2.6
    2.6 创建软连接
    ln -s alibaba-rocketmq-3.2.6 rocketmq
    2.7 mkdir /usr/local/rocketmq/store
    mkdir /usr/local/rocketmq/store/commitlog
    mkdir /usr/local/rocketmq/store/consumequeue
    mkdir /usr/local/rocketmq/store/index

    2.8 把borker-a.properties 和borker-b.properties 上传到/usr/local/recketmq/conf/2m-noslave
    2.9 master01配置borker-a.properties
    brokerName=broker-a 对应文件名称
    namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

    master02配置borker-b.properties
    brokerName=broker-b 对应文件名称
    namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
    2.10 修改日志
    mkdir -p /usr/local/rocketmq/logs
    cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
    2.11 配置JVM参数
    vi /usr/local/rocketmq/bin/runbroker.sh
    JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"
    vi /usr/local/rocketmq/bin/runserver.sh
    2.12 启动NameServer
    cd /usr/local/rocketmq/bin
    启动:nohup sh mqnamesrv &
    jps查看JDK进程是否有NamesrvStartup

    2.13 启动BrokerServer
    cd /usr/local/rocketmq/bin
    master01启动:nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
    master01启动:nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
    jps查看JDK进程是否有BrokerStartup

    3.通过console控制台监控rocketmq状态
    3.1 将Tomcat压缩包上传到虚拟机进行解压 /usr/local tar -zxvf xxxx解压
    3.2 将rocketmq-web-console.war上传到Tomcat解压目录的webapps下
    3.3 启动Tomcat
    切换到/usr/local/apache-tomcat-7.0.65/bin
    ./startup.sh 启动 ./shutdown.sh 停止
    3.4 修改解压后的rocketmq-web-console
    /usr/local/apache-tomcat-7.0.65/webapps/rocketmq-web-console/WEB-INF/classes/config.properties配置文件
    配置:
    rocketmq.namesrv.addr=192.168.7.11:9876;192.168.7.22:9876
    throwDone=true
    3.5 两台机器防火墙关闭
    systemctl stop firewalld.service
    systemctl disable firewalld.service

    安装步骤

    安装JDK
      检查当前虚拟机环境有没有JDK rpm -qa|grep java
      卸载 rpm -e --nodeps xxxxxx
      安装JDK
      在/usr/local新建一个java文件夹,然后将tar包上传到文件夹下
      切换到/usr/local/java 使用tar -zxvf xxx解压
      配置/etc/profile文件,加入JDK环境变量
        export JAVA_HOME=/usr/local/java/jdk1.8.0_121 替换自己路径
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        export PATH=$JAVA_HOME/bin:$PATH
      应用文件 source /etc/profile
      使用java -version查看版本

    安装RocketMQ
      配置/etc/hosts文件
        192.168.7.11 rocketmq-nameserver1
        192.168.7.11 rocketmq-master1
        192.168.7.22 rocketmq-nameserver2
        192.168.7.22 rocketmq-master2
      重新网卡 service network restart
      上传rocketmq压缩包,上传到/usr/local下
      切换到/usr/local下解压rocketmq压缩包 tar -zxvf xxxxxx
      更改解压文件夹名称
        mv alibaba-rocketmq alibaba-rocketmq-3.2.6
      创建软连接
        ln -s alibaba-rocketmq-3.2.6 rocketmq
      mkdir /usr/local/rocketmq/store
        mkdir /usr/local/rocketmq/store/commitlog
        mkdir /usr/local/rocketmq/store/consumequeue
        mkdir /usr/local/rocketmq/store/index
      把borker-a.properties 和borker-b.properties 上传到/usr/local/recketmq/conf/2m-noslave
      master01配置borker-a.properties
        brokerName=broker-a 对应文件名称
        namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
      master02配置borker-b.properties
        brokerName=broker-b 对应文件名称
        namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
      修改日志
        mkdir -p /usr/local/rocketmq/logs
        cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
      配置JVM参数
        vi /usr/local/rocketmq/bin/runbroker.sh
        JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"
        vi /usr/local/rocketmq/bin/runserver.sh
      启动NameServer
        cd /usr/local/rocketmq/bin
      启动:nohup sh mqnamesrv &
        jps查看JDK进程是否有NamesrvStartup

      启动BrokerServer
        cd /usr/local/rocketmq/bin
        master01启动:nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
        master01启动:nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
        jps查看JDK进程是否有BrokerStartup
    通过console控制台监控rocketmq状态
      将Tomcat压缩包上传到虚拟机进行解压 /usr/local tar -zxvf xxxx解压
      将rocketmq-web-console.war上传到Tomcat解压目录的webapps下
      启动Tomcat
        切换到/usr/local/apache-tomcat-7.0.65/bin
        ./startup.sh 启动 ./shutdown.sh 停止
      修改解压后的rocketmq-web-console
        /usr/local/apache-tomcat-7.0.65/webapps/rocketmq-web-console/WEB-INF/classes/config.properties配置文件
      配置:
        rocketmq.namesrv.addr=192.168.7.11:9876;192.168.7.22:9876
        throwDone=true
      两台机器防火墙关闭
        systemctl stop firewalld.service
        systemctl disable firewalld.service

  • 相关阅读:
    Spinlock
    Leetcode: Summary Ranges
    Leetcode: Search a 2D Matrix
    Leetcode: Rotate Image
    Leetcode: Length of Last Word in python
    BBC-unit7 session1
    BBC-unit6 session5
    BBC-unit6 session4
    BBC英语-unit6 session3
    BBC英语-unit6 session2
  • 原文地址:https://www.cnblogs.com/danxun/p/12323139.html
Copyright © 2011-2022 走看看