• 消息中间件--"rocketmq"01之环境搭建


    前置知识


    ssh工具

    连接linux工具SecureCRT


    Linux相关知识

    centos7 防火墙firewalld的基本使用,参考
    • 启动: systemctl start firewalld
    • 查看状态: systemctl status firewalld
    • 停止: systemctl disable firewalld
    • 禁用: systemctl stop firewalld

    配置firewalld-cmd
    • 查看版本: firewall-cmd --version
    • 查看帮助: firewall-cmd --help
    • 显示状态: firewall-cmd --state
    • 查看所有打开的端口: firewall-cmd --zone=public --list-ports
    • 更新防火墙规则: firewall-cmd --reload
    • 查看区域信息: firewall-cmd --get-active-zones
    • 查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
    • 拒绝所有包:firewall-cmd --panic-on
    • 取消拒绝状态: firewall-cmd --panic-off
    • 查看是否拒绝: firewall-cmd --query-panic

    开启一个对外端口步骤
    • 先查看是否开启,查看所有打开的端口: firewall-cmd --zone=public --list-ports
    • 添加:
      firewall-cmd --zone=public --add-port=80/tcp --permanent(--permanent永久生效,没有此参数重启后失效)
    //命令含义:
    –zone #作用域
    –add-port=80/tcp #添加端口,格式为:端口/通讯协议
    –permanent #永久生效,没有此参数重启后失效
    
    • 重新载入: firewall-cmd --reload
    • 查看是否开启: firewall-cmd --zone=public --query-port=80/tcp
    • 删除: firewall-cmd --zone= public --remove-port=80/tcp --permanent
    服务器环境(针对2m-noslave)
    序号 IP 用户名 密码 角色 模式
    1 192.168.100.24 root nameServer1,brokerServer1 Master1
    2 192.168.100.25 root nameServer2,brokerServer2 Master2
    Hosts添加信息

    修改host,做集群的通讯(两台机器都修改)

    vim /etc/hosts
    
    

    host.png

    IP NAME
    192.168.100.24 rocketmq-nameserver1
    192.168.100.24 rocketmq-master1
    192.168.100.25 rocketmq-nameserver2
    192.168.100.25 rocketmq-master2

    rocketmq安装

    双master模式(双namesrv双broker)


    上传解压

    上传

    使用 rz sz插件,进行上传下载

    yum install -y lrzsz
    
    

    上传命令为rz,下载命令为sz

    解压安装
    tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local   //解压到指定目录下
    
    mv alibaba-rocketmq alibaba-rocketmq-3.2.6 //重命名,带版本号
    
    ln -s alibaba-rocketmq-3.2.6 rocketmq  //创建软链接、如果不加 -s 就是创建硬链接
    
    

    创建存储路径

    mkdir /usr/local/rocketmq/store
    
    mkdir /usr/local/rocketmq/store/commitlog
    
    mkdir /usr/local/rocketmq/store/consumequeue
    
    mkdir /usr/local/rocketmq/store/index
    
    

    修改RocketMQ配置文件

    vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
    
    vim /usr/local/rocketmq/conf/2m-noslave/broker-b.properties
    
    

    作为broker启动时的参数配置文件

    参考配置
    #所属集群名字
    brokerClusterName=rocketmq-cluster
    
    #broker名字,注意此处不同的配置文件填写的不一样
    brokerName=broker-a|broker-b
    
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    
    #nameServer地址,分号分割
    namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2: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=/usr/local/rocketmq/store
    
    #commitLog 存储路径
    storePathCommitLog=/usr/local/rocketmq/store/commitlog
    
    #消费队列存储路径存储路径
    storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
    
    #消息索引存储路径
    storePathIndex=/usr/local/rocketmq/store/index
    
    #checkpoint 文件存储路径
    storeCheckpoint=/usr/local/rocketmq/store/checkpoint
    
    #abort 文件存储路径
    abortFile=/usr/local/rocketmq/store/abort
    
    #限制的消息大小
    maxMessageSize=65536
    
    #flushCommitLogLeastPages=4
    
    flushConsumeQueueLeastPages=2
    
    #flushCommitLogThoroughInterval=10000
    
    #flushConsumeQueueThoroughInterval=60000
    
    #Broker 的角色
    #- ASYNC_MASTER 异步复制Master
    #- SYNC_MASTER 同步双写Master
    
    #- SLAVE
    brokerRole=ASYNC_MASTER
    
    #刷盘方式
    #- ASYNC_FLUSH 异步刷盘
    #- SYNC_FLUSH 同步刷盘
    
    flushDiskType=ASYNC_FLUSH
    
    #checkTransactionMessageEnable=false
    
    #发消息线程池数量
    #sendMessageThreadPoolNums=128
    #拉消息线程池数量
    #pullMessageThreadPoolNums=128
    
    
    

    修改日志配置文件

    
    
    

    修改启动脚本参数

    
    
    
    

    上面两步省略,直接上传到linux解压等即可

    启动服务namesrv


    1.到bin目录下

    加入执行权限 chmod +x *

    2.修改启动的堆内存初始大小
    `vim runserver.sh` //更改内存设置
    
    3.启动
    ./mqnamesrv
    
    4.后台运行进程:
    nohup ./mqnamesrv &
    
    
    5.jps查看进程

    查看是否成功: tail -f nohup.out


    启动服务broker(master)

    1.修改启动的堆内存初始大小
    
    vim runbroker.sh //更改内存设置
    
    
    2. 启动
    nohup sh mqbroker -n "192.168.1.107:9876"  &
    
    
    3.指定配置文件的方式启动
    nohup sh mqbroker -n "192.168.1.107:9876" -c ../conf/2m-noslave/broker-a.properties > broker.out & 
    
    nohup sh mqbroker -n "127.0.0.1:9876" -c ../conf/2m-noslave/broker-a.properties > broker.out  &
    
    nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
    # 用这个,不要指定namesrv地址
    
    
    4.使用./mqadmin来观察namesrv和broker的情况
    ./mqadmin clusterList -n 192.168.1.107:9876 //ip为namesrv地址
    

    查看是否成功启动

    netstat -ntlp
    # jps
    # tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
    # tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
    
    

    停止Rocketmq

    cd /usr/local/rocketmq/bin
    
    sh mqshutdown broker
    sh mqshutdown namesrv
    
    
    

    数据清理(停止后进行数据清理)

    --等待停止
    
    # rm -rf /usr/local/rocketmq/store
    # mkdir /usr/local/rocketmq/store
    # mkdir /usr/local/rocketmq/store/commitlog
    # mkdir /usr/local/rocketmq/store/consumequeue
    # mkdir /usr/local/rocketmq/store/index
    
    --按照上面步骤重启NameServer与BrokerServer
    
    
    5.RocketMQ需要打开的防火请端口号 9876,10911,10912
  • 相关阅读:
    Spring boot unable to determine jdbc url from datasouce
    Unable to create initial connections of pool. spring boot mysql
    spring boot MySQL Public Key Retrieval is not allowed
    spring boot no identifier specified for entity
    Establishing SSL connection without server's identity verification is not recommended
    eclipse unable to start within 45 seconds
    Oracle 数据库,远程访问 ora-12541:TNS:无监听程序
    macOS 下安装tomcat
    在macOS 上添加 JAVA_HOME 环境变量
    Maven2: Missing artifact but jars are in place
  • 原文地址:https://www.cnblogs.com/leihuazhe/p/7689298.html
Copyright © 2020-2023  润新知