zoukankan      html  css  js  c++  java
  • rocketMQ(二 )Centos7 集群

    rocketMQ集群:

    在运用中流程一般 是在程序中使用代码编辑生产者,将所需要的消息发送到rocketmq中,然后另一个程序编辑消费者从rocketmq里面获取消息。rocketmq集群 需要对nameServer 和Broker 集群

    准备两台服务器,两台机器都是master,如果要搞一主N备,修改相应的配置文件

    ip:192.168.31.144 rocketmq-nameserver1  rocketmq-master1

    ip:192.168.31.165 rocketmq-nameserver2  rocketmq-master2

     1.安装jdk环境:

    https://www.oracle.com/technetwork/java/javase/downloads/index.html

    下载:

    1.上传该文件到:/usr/local

    2.解压 tar -zxvf jdk-7u80-linux-x64.tar.gz

    3.修改配置文件

    4.vi /etc/profile 

    在末尾添加配置文件:

    export JAVA_HOME=/usr/local/jdk1.7.0_80

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    export PATH=$JAVA_HOME/bin:$PATH

    刷新配置文件:

    source /etc/profile(该命令可以让 当前的配置文件立刻生效。不需要在重启服务器)

    5.测试jdk安装是否成功: java -version

    如图所示:表示成功

    2.rocketmq集群:

    1.下载mq http://rocketmq.apache.org/dowloading/releases/

    2.上传下载包到 /usr/local

    3.解压文件 

    # 上传alibaba-rocketmq-3.2.6.tar.gz文件至/usr/local

    # 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

    4.创建存储路径:

    mkdir /usr/local/rocketmq/store

    # mkdir /usr/local/rocketmq/store/commitlog

    # mkdir /usr/local/rocketmq/store/consumequeue

    # mkdir /usr/local/rocketmq/store/index

    5.修改rocketmq的核心配置文件:

    broker-a.properties文件配置

    #所属集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样
    brokerName=broker-a
    #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

    broker-b.properties文件配置

    #所属集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字,注意此处不同的配置文件填写的不一样
    brokerName=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

    6.在本地host文件中 添加域名解析

    配置文件中:namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 此地址需要域名解析:

    打开 hosts文件 vi /etc/hosts 

    添加对应的域名解析:

    至于划横线的地方,有的机器如果不添加 则可能在启动NameServer的时候会报错 提示没有主机名关联的地址

    可以通过hostname命令,查看主机名字

    修改完配置以后 则需要刷新网卡:

    service network restart

    如果是虚拟机克隆出来的服务器,刷新网卡的时候 如果报错,则可以查看:vi /etc/sysconfig/network-scripts/ifcfg-xxx 文件(每台机器名字可能不一样)

    修改HWADDR的mac地址

    mac地址可以两种方式查看:

    或者:

     有的机器没有HWADDR 这个配置名字,如果没有则添加上去。修改完配置以后 重新刷新网卡service network restart,如果刷新还报错。可以尝试重新启动

    可以通过ping的方式 检测 hosts文件是否配置成功:

     以上:上传 解压,修改本地hosts文件,刷新网卡,关闭防火墙等操作两台服务器都应该进行相应的操作,所有的操作完成了,则接下来就是启动 rocketmq的

     3 .关于NameServer和brok的启动

    1.进入  cd /usr/local/rocketmq/bin 

    2. nohup sh mqnamesrv &     后台启动nameServer  然后通过jps 命令 查看当前是否正常启动

    ps:第一次操作的时候,总是会在这里出错,启动的时候 提示:

    网上 查了一大堆原因,也不知道是怎么回事,可以换sh mqnamesrv 这种方式启动,如果有报错 则会打印报错日志,如果启动的时候如图所示:

    表示 正常启动成功,当然这是前端启动方式,ctrl+c 就自然退出了,需要切换成后台启动形式:

     所以启动这里,你可以先后台启动,然后通过jps查看 是否启动成功,如果没有启动成功 则 前台方式启动,看看打印的错误日志。例如:

     成功启动以后 则能看到:

     如果启动的时候因为内存分配原因 导致无法启动成功,则需要修改配置文件:

      

    vi /usr/local/rocketmq/bin/runbroker.sh 

     

     2.启动brokerServer

    1.cd /usr/local/rocketmq/bin

    2.nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 & (如果是另一台机器,则启动时候需要用到是 broker -b.properties文件)如图:

     两台机器都完成了上面的步骤,可以搭建一个rocketmq的后端管理系统

     1. 下载 tomcat(可以将tomcat放在两台服务器中的任何一台都可以了 tomcat 不需要集群)

     2.下载rocketmq的后端管理平台所需要的war包

     

    3.将war包放到tomcat/webapps目录(启动或者重启tomcat的时候自动解压war包了)

     

    4.修改位于:/usr/local/apache-tomcat-7.0.65/webapps/rocketmq-web-console/WEB-INF/classes 下的config.properties文件 将集群的ip地址配置进去

     

     5.启动tomcat 输入请求地址栏:

    http://192.168.31.197:8080/rocketmq-web-console/cluster/list.do

     

     6.如果能看到以上图示,表示rocketmq搭建成功

  • 相关阅读:
    django 关于render的返回数据
    关于 eval 的报错 Uncaught ReferenceError: False is not defined
    Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse (<anonymous>)
    ajax 异步请求返回只刷新一次页面
    线程
    IO
    IO初步,字节输入流和字节输出流
    File、FileFilter、递归初步
    Map、可变参数、静态导入、Collections、Arrays、集合嵌套
    Collection单列集合中的常用实现类
  • 原文地址:https://www.cnblogs.com/920913cheng/p/10711301.html
Copyright © 2011-2022 走看看