zoukankan      html  css  js  c++  java
  • RocketMQ 安装

    镜像方式安装

    首先再把上一接中提到的 RocketMQ 部署架构图看一下。

    从图中可以看出,RocketMQ的服务端分为两块 Name Server 和 Broker。

    • Name Server:是一个几乎无状态节点,可集群部署,在消息队列RocketMQ版中提供命名服务,更新和发现Broker服务。
    • Broker:消息中转角色,负责存储消息,转发消息。分为Master Broker和Slave Broker,一个Master Broker可以对应多个Slave Broker,但是一个Slave Broker只能对应一个Master Broker。Broker启动后需要完成一次将自己注册至Name Server的操作;随后每隔30s定期向Name Server上报Topic路由信息。

    启动NameServer服务

    创建NameServer数据存储路径:

    mkdir -p /home/rocketmq/data/namesrv/logs /home/rocketmq/data/namesrv/store
    

    构建 NameServer 容器:

    docker run -d 
    --name rmqnamesrv 
    -p 9876:9876 
    -v /home/rocketmq/data/namesrv/logs:/root/logs 
    -v /home/rocketmq/data/namesrv/store:/root/store 
    -e "MAX_POSSIBLE_HEAP=100000000" 
    rocketmqinc/rocketmq 
    sh mqnamesrv
    

    启动Broker服务

    创建Broker数据存储路径:

    mkdir -p /home/rocketmq/data/broker/logs /home/rocketmq/data/broker/store /home/rocketmq/conf
    

    在/home/rocketmq/conf 目录下创建 broker.conf 文件,内容如下:

    # 所属集群名称,如果节点较多可以配置多个
    brokerClusterName = DefaultCluster
    #broker名称,master和slave使用相同的名称,表明他们的主从关系
    brokerName = broker-a
    #0表示Master,大于0表示不同的slave
    brokerId = 0
    #表示几点做消息删除动作,默认是凌晨4点
    deleteWhen = 04
    #在磁盘上保留消息的时长,单位是小时
    fileReservedTime = 48
    #有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
    brokerRole = ASYNC_MASTER
    #刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
    flushDiskType = ASYNC_FLUSH
    # 设置broker节点所在服务器的ip地址
    brokerIP1 = 172.16.250.129
    

    构建 Broker 容器:

    docker run -d  
    --name rmqbroker 
    --link rmqnamesrv:namesrv 
    -p 10911:10911 
    -p 10909:10909 
    -v  /home/rocketmq/data/broker/logs:/root/logs 
    -v  /home/rocketmq/data/broker/store:/root/store 
    -v /home/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf 
    -e "NAMESRV_ADDR=namesrv:9876" 
    -e "MAX_POSSIBLE_HEAP=200000000" 
    rocketmqinc/rocketmq 
    sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf 
    

    控制台

    构建rockermq-console容器:

    docker run -d 
    --name rmqadmin 
    -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.16.250.129:9876 
    -Dcom.rocketmq.sendMessageWithVIPChannel=false 
    -Duser.timezone='Asia/Shanghai'" 
    -v /etc/localtime:/etc/localtime 
    -p 9999:8080 
    pangliang/rocketmq-console-ng
    

    访问 http://172.16.250.129:9999/#/cluster 如下图说明安装成功:

    二进制包方式安装

    下载地址:

    https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.5.0/rocketmq-all-4.5.0-bin-release.zip

    环境要求:

    • Linux64位系统
    • JDK1.8(64位)

    启动NameServer

    # 1.启动NameServer
    nohup sh bin/mqnamesrv &
    # 2.查看启动日志
    tail -f ~/logs/rocketmqlogs/namesrv.log
    

    启动Broker

    # 1.启动Broker
    nohup sh bin/mqbroker -n localhost:9876 &
    # 2.查看启动日志
    tail -f ~/logs/rocketmqlogs/broker.log 
    

    若启动报内存不足启动失败,需要编辑如下两个配置文件,修改JVM内存大小:

    vi runbroker.sh
    vi runserver.sh
    
    • 参考配置:
    JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m  -XX:MaxMetaspaceSize=320m"
    

    测试RocketMQ

    发送消息

    进入 rmqnamesrv 容器:

    [root@localhost ~]# docker exec -it 95a52e07151c bash
    [root@95a52e07151c bin]#  
    
    # 1.设置环境变量
    export NAMESRV_ADDR=172.16.250.129:9876  
    # 2.使用安装包的Demo发送消息
    sh tools.sh org.apache.rocketmq.example.quickstart.Producer
    

    消费消息

    # 1.设置环境变量
    export NAMESRV_ADDR=localhost:9876
    # 2.接收消息
    sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
    

  • 相关阅读:
    Android的计量单位px,in,mm,pt,dp,dip,sp
    android实现图片平铺效果&WebView多点触控实现缩放
    360°全景图
    为Vell001家族使用过的图标
    WordPress更新服务加快收录
    WordPress模版结构
    android权限大全
    Android强制设置横屏或竖屏
    android获取屏幕分辨率
    android用ImageView显示网络图片
  • 原文地址:https://www.cnblogs.com/huanchupkblog/p/14280153.html
Copyright © 2011-2022 走看看