RocketMQ


RocketMQ

1.安装RocketMQ

1.1 启动RocketMQ
1.1.1 启动NameServer
1.启动NameServer
cd 进入RocketMQ安装目录
nohup sh bin/mqnamesrv > mqnamesrv.log 2>&1 &
2.查看启动日志
tail -f ~/logs/rocketmqlogs/namesrv.log
3.查看进程
ps -ef|grep rocketmq 或 jps
1.1.2 启动Broker
1.启动Broker
cd 进入RocketMQ安装目录
nohup sh bin/mqbroker -n localhost:9876 > mqbroker.log 2>&1 &
2.查看启动日志
tail -f ~/logs/rocketmqlogs/broker.log
3.查看进程
ps -ef|grep rocketmq 或 jps
  • 问题描述

    RocketMQ默认的虚拟机内存较大,启动Broker如果因为内存不足失败,需要编辑如下两个配置文件,修改JVM内存大小

    # 编辑runborker.sh和runserver.sh修改默认JVM大小
    vim runborker.sh
    vim runserver.sh
    
    # JVM Configuration
    JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g -XX:PermSize=128m -XX:MaxPermSize=320m"
    JAVA_OPT="${JAVA_OPT} -server -Xms256g -Xmx256g -Xmn128g -XX:PermSize=128m -XX:MaxPermSize=320m"
    JAVA_OPT="${JAVA_OPT}"
    
    -XX:+UseConcMarkSweepGC 对老年代使用并发标记扫描收集。
    
    -XX:+UseCMSCompactAtFullCollection 对老年代使用并发回收。
    
    -XX:CMSInitiatingOccupancyFraction=70 默认CMS是在tenured generation沾满70%(默认68%)的时候开始进行CMS收集
    
    -XX:+CMSParallelRemarkEnabled 为了减少第二次暂停的时间,开启并行remark
    
    -XX:SoftRefLRUPolicyMSPerMB=0
    
    -XX:+CMSClassUnloadingEnabled 相对于并行收集器,CMS收集器默认不会对永久代进行垃圾回收。如果希望对永久代进行垃圾回收,可用设置标志-XX:+CMSClassUnloadingEnabled。
    
    -XX:SurvivorRatio=8
    
    -XX:+DisableExplicitGC
    
    -XX:-UseParNewGC"
    JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
    JAVA_OPT="${JAVA_OPT}  -XX:-UseLargePages"
    JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib"
    #JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
    JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
    
1.2 关闭RocketMQ
1. 关闭NameServer
sh bin/mqshutdown namesrv
2. 关闭Broket
sh bin/mqshutdown broker
1.3 测试RocketMQ
  • 发送消息

    #1.设置环境变量
    export NAMESRV_ADDR=localhost:9876
    #2.使用安装包的dome发送消息
    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
    
  • 接收消息

    #1.设置环境变量
    export NAMESRV_ADDR=localhost:9876
    #2.使用安装包的dome发送消息
    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
    

2.RocketMQ集群搭建

2.1 各角色介绍
  • Producer: 消息的发送者;举例:发信者
  • Comsumer: 消息接收者; 举例:收信者
  • Broker: 暂存和传输消息; 举例: 邮局
  • NameServer: 管理Broker; 举例:各个邮局的管理机构
  • Topic: 区分消息的种类;一个发送者可以发送消息给一个或者多个Topic;一个消息的接收者可以订阅一个或者多个Topic消息
  • Message Queue: 相当于是Topic的分区;用于并行发送和接收消息
2.2 集群搭建方式
2.2.1 集群的模式
  • 单Master模式
  • 多Master模式
  • 多Master多Slave模式(异步)
  • 多Master多Slave模式(同步)
2.2.2 集群的搭建

文章作者: shipengzhen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 shipengzhen !
 上一篇
安装nexus 安装nexus
安装nexusdocker 方式安装1.1 创建docker-compose.ymlversion: '3.1' services: nexus: image: sonatype/nexus3 restart: alwa
2021-02-22
下一篇 
Liunx常用命令 Liunx常用命令
常用命令查看当前目录 pwd 清屏 clear 查看文档 man 命令 结束进程 q 清屏 clear mut(挂载) mut[设备名称][挂载点] 查询用户 cat /etc/passwd 查询组 cat /etc/group 筛选
2020-06-20
  目录