zoukankan      html  css  js  c++  java
  • RocketMQ--环境搭建(单机&docker&集群)

    一、单机安装

      1、安装RocketMQ需要使用JDK,首先需要配置好JDK,安装JDK

      2、下载并启动RocketMQ

    # 下载RocketMQ
    wget https://mirrors.bfsu.edu.cn/apache/rocketmq/4.9.0/rocketmq-all-4.9.0-bin-release.zip
    # 解压缩
    unzip rocketmq-all-4.9.0-bin-release.zip
    # 切换到bin目录
    cd rocketmq-all-4.9.0-bin-release/bin/
    # 后台启动namesrv
    nohup ./mqnamesrv > /dev/null 2>&1 &
    # 后台启动broker
    nohup ./mqbroker -n localhost:9876 > /dev/null 2>&1 &

      如果出现如下问题:

          

       这是因为内存不足,导致java程序运行不起来,可以设置namesrv和broker的内占用内存

       修改runserver.sh和runbroker.sh中关于内存的配置

          

       3、验证消息

      首先修改namesrv的地址

    #编辑profile文件 
    vi /etc/profile 
    #刷新 
    source /etc/profile 
    #设置nameserver服务器 
    export NAMESRV_ADDR=localhost:9876

      然后验证消息发送和消息消费

    #测试消息发送命令 
    sh tools.sh org.apache.rocketmq.example.quickstart.Producer 
    #测试消息接收命令 
    sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

    二、Docker安装

      1、安装docker

      2、拉取镜像

    docker pull foxiswho/rocketmq:server-4.3.2 
    docker pull foxiswho/rocketmq:broker-4.3.2

      3、创建namesrv容器

    docker run -di -p 9877:9876 --name=rmqserver -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" -e "JAVA_OPTS=-Duser.home=/opt" foxiswho/rocketmq:server-4.3.2

      4、创建broker容器

    docker run -di -p 10911:10911 -p 10909:10909 --name=rmqbroker -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" foxiswho/rocketmq:broker-4.3.2

      5、配置broker

    # 配置broker容器的配置文件
    docker exec -it rmqbroker /bin/bash 
    cd /etc/rocketmq/ 
    vi broker.conf
    #配置内容
    brokerIP1=192.168.124.11
    namesrvAddr=192.168.124.11:9876 
    brokerName=broker-a

      6、重新启动

    docker start rmqserver rmqbroker

      7、停止和删除容器

    docker stop rmqbroker rmqserver 
    docker rm rmqbroker rmqserver

    三、集群搭建

      rocketmq已经提供了集群的样例

      1、修改如下配置文件:

    ${RocketMQ_HOME}/conf/2m-2s-sync/broker-a.properties
    ${RocketMQ_HOME}/conf/2m-2s-sync/broker-a-s.properties
    ${RocketMQ_HOME}/conf/2m-2s-sync/broker-b.properties
    ${RocketMQ_HOME}/conf/2m-2s-sync/broker-b-s.properties

      修改内容:

    brokerClusterName=DefaultCluster
    brokerName=broker-b
    brokerId=1
    deleteWhen=04
    fileReservedTime=48
    brokerRole=SLAVE
    flushDiskType=ASYNC_FLUSH
    listenPort=40911
    storePathRootDir=/Users/hadoop/store-a/
    storePathCommitLog=/Users/hadoop/store-a/commitlog/
    storePathConsumerQueue=/Users/hadoop/store-a/consumequeue/

      需要说明一下,如果是同一台机子,监听端口需要修改不一样。

      2、启动broker

    bin/mqbroker -c conf/2m-2s-sync/broker-a.properties -n localhost:9876 &
    bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties -n localhost:9876 &
    bin/mqbroker -c conf/2m-2s-sync/broker-b.properties -n localhost:9876 &
    bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties -n localhost:9876 &

      5、查看

          

      6、对于broker的全量配置内容如下所示

    #所属集群名字
    brokerClusterName=tl-rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样; 在broker-b.properties中此处需要修改为:brokerName=broker-b
    brokerName=broker-a
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    #nameServer地址,分号分割
    namesrvAddr=node1:9876;node2:9876
    #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
    defaultTopicQueueNums=4
    #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
    autoCreateTopicEnable=true
    #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=true
    #Broker 对外服务的监听端口
    listenPort=10911
    #删除文件时间点,默认凌晨 4点
    deleteWhen=04
    #文件保留时间,默认 48 小时
    fileReservedTime=120
    #commitLog每个文件的大小默认1G
    mapedFileSizeCommitLog=1073741824
    #ConsumeQueue每个文件默认存30W条,根据业务情况调整
    mapedFileSizeConsumeQueue=300000
    destroyMapedFileIntervalForcibly=120000
    redeleteHangedFileInterval=120000
    #检测物理文件磁盘空间
    diskMaxUsedSpaceRatio=88
    #存储路径
    storePathRootDir=/apps/rocketmq-4.2.0/2m2s-data/store
    #commitLog 存储路径
    storePathCommitLog=/apps/rocketmq-4.2.0/2m2s-data/store/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/apps/rocketmq-4.2.0/2m2s-data/store/consumequeue
    #消息索引存储路径
    storePathIndex=/apps/rocketmq-4.2.0/2m2s-data/store/index
    #checkpoint 文件存储路径
    storeCheckpoint=/apps/rocketmq-4.2.0/2m2s-data/store/checkpoint
    #abort 文件存储路径
    abortFile=/apps/rocketmq-4.2.0/2m2s-data/store/abort
    #限制的消息大小
    maxMessageSize=65536
    flushCommitLogLeastPages=4
    flushConsumeQueueLeastPages=2
    flushCommitLogThoroughInterval=10000
    flushConsumeQueueThoroughInterval=60000
    checkTransactionMessageEnable=false
    sendMessageThreadPoolNums=128
    pullMessageThreadPoolNums=128
    #Broker 的角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    #- SLAVE
    brokerRole=SYNC_MASTER
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    flushDiskType=ASYNC_FLUSH

    四、控制台

      1、搭建

    # 拉取镜像
    docker pull styletang/rocketmq-console-ng:1.0.0
    # 创建并运行容器
    docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.124.11:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8082:8080 -t styletang/rocketmq-console-ng:1.0.0

      2、查看

          

    ------------------------------------------------------------------
    -----------------------------------------------------------
    ---------------------------------------------
    朦胧的夜 留笔~~
  • 相关阅读:
    Centos7安装gitlab私服
    SpringBoot2.x开发WebSocket
    java中 DecimalFormat格式的定义
    Docker部署Reids实战单机、集群
    CCF地铁修建
    C题:A Water Problem(dp||搜索)
    A题:Common Substrings(KMP应用)
    HDU 1879 继续畅通工程(Prim||Kruscal模板题)
    魔兽世界之一:备战(模拟)
    F题:等差区间(RMQ||线段树)
  • 原文地址:https://www.cnblogs.com/liconglong/p/15164734.html
Copyright © 2011-2022 走看看