RocketMQ基础介绍及部署(一)

RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,在阿里内部,RocketMQ承接了例如“双11”等高并发场景的消息流转,能够处理万亿级别的消息。

RocketMQ的核心组件

  • Broker:MQ程序,接收生产的消息,提供给消费者消费的程序
  • NameServer:注册中心,给生产和消费者提供路由信息,提供轻量级服务发现、路由、元数据信息、可以多个部署,互相独立,比rookeeper更加轻量

RocketMQ本地部署

环境要求:64bit OS, Linux/Unix/Mac (Windows不兼容) 64bit JDK 1.8+;
源码安装需要安装Maven 3.2.x,二进制安装包直接解压即可
下载地址:http://mirror.bit.edu.cn/apache/rocketmq/4.6.0/

  • 解压:unzip rocketmq-all-4.6.0-source-release.zip
  • 进入目录: cd rocketmq-all-4.6.0-source-release
  • 编译:mvn -Prelease-all -DskipTests clean install -U
  • 进入目录:cd distribution/target/rocketmq-4.6.0/rocketmq-4.6.0

部署中遇到的问题

Please set the JAVA_HOME variable in your environment, We need java(x64)

本地需要配置环境变量 vim ~/.bash_profile

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Con
CLASS_PATH="$JAVA_HOME/lib"
PATH=".$PATH:$JAVA_HOME/bin"

RocketMQ常用命令

  • 启动nameServer

nohup sh bin/mqnamesrv &

  • 查看日志 (结尾:The Name Server boot success. serializeType=JSON 表示启动成功)

tail -f nohup.out

  • 启动broker(-n指定nameserver地址,nameserver服务端⼝为9876, broker默认端⼝ 10911)

nohup sh bin/mqbroker -n localhost:9876 &

  • 关闭nameserver broker执行命令

sh bin/mqshutdown broker|namesrv

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

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m  -XX:MaxMetaspaceSize=320m"

RocketMQ测试

1、发送消息

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

2、接收消息

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

RocketMQ可视化控制台安装

去Github下载 https://github.com/apache/rocketmq-externals 源码
编译打包 mvn clean package -Dmaven.test.skip=true
旧版本会出现一个问题,这是官方的一个BUG,pom文件中引用了SNAPAHOT版本依赖导致
解决方案:修改pom文件中<rocketmq.version>4.4.0-SNAPSHOT</rocketmq.version>去掉-SNAPSHOT即可
最新版已修复此BUG

[ERROR] Failed to execute goal on project rocketmq-console-ng: Could not resolve dependencies for project org.apache:rocketmq-console-ng:jar:1.0.0: The following artifacts could not be resolved: org.apache.rocketmq:rocketmq-tools:jar:4.4.0-SNAPSHOT, org.apache.rocketmq:rocketmq-namesrv:jar:4.4.0-SNAPSHOT, org.apache.rocketmq:rocketmq-broker:jar:4.4.0-SNAPSHOT: Could not find artifact org.apache.rocketmq:rocketmq-tools:jar:4.4.0-SNAPSHOT -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

编译打包完成之后进入target目录通过java -jar 方式允许即可,启动端口默认为8080

添加新评论

评论列表