zoukankan      html  css  js  c++  java
  • 消息中间件--"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
  • 相关阅读:
    5000 端口 转发
    程序的运行环境=内存+运行库+系统调用
    日志异步落库
    malloc分配的空间是连续的吗?
    PE/ELF文件里面存的是什么呢?
    [Python]编码声明:是coding:utf-8还是coding=utf-8呢
    基于可执行代码的缓冲区溢出检测模型
    SU Demos-06Selecting Traces
    SU Demos-05Sorting Traces-03susorty
    SU Demos-05Sorting Traces-02Demos
  • 原文地址:https://www.cnblogs.com/leihuazhe/p/7689298.html
Copyright © 2011-2022 走看看