RocketMQ 系列一:入门级使用演示
实验简介
Apache RocketMQ™ 是一个统一的消息引擎系统, 也是一个轻量级的数据处理平台.
当你遇到以下类似问题而束手无策时,RocketMQ 可以帮助你解决:
重试消息、死信消息、事物消息支持
消息轨迹追踪
消息过滤
IPv6 支持
ACL 支持
主、副本自动高可靠
全面的监控支持
管理平台原生支持
Request-Reply 模式支持
本教程会以如何利用源码编译、打包、部署、实际使用 RocketMQ。
实验实操
一、如何下载、编译最新版 RocketMQ
(本教程会以如何利用源码编译并打包 RocketMQ 为例, 演示如何下载、编译任意版本的 RocketMQ.)
1. 安装 git,jdk, maven 等工具(参考 baidu/google)
jdk 安装
jdk 下载:https://www.oracle.com/hk/java/technologies/javase/javase8-archive-downloads.html
jdk 安装
windows:https://www.runoob.com/w3cnote/windows10-java-setup.html
maven 安装
maven 下载二进制:https://dist.apache.org/repos/dist/release/maven/maven-3/
maven 安装(windows + macos):https://www.runoob.com/maven/maven-setup.html
如果对于国外网站访问慢, 可以配置 maven 国内镜像:https://cloud.tencent.com/developer/article/1452479
git 安装 ( 可选 , 不安装的话直接下载 4.9.3 源代码:https://github.com/apache/rocketmq/releases)
下载地址:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
2.下载最新 release 代码(这里以 git 为例,如果没有安装 git 直接从 github release 页面下载)
在自己电脑上, 进入命令行, 选择一个保存源码的目录, 这里我把源码保存到 /tiger/tmp 为例
2.1 创建代码保存目录(已创建则不操作)并进入代码保存目录:
2.2 克隆代码
2.3 进入源码根目录:
3. 编译和打包源码
编译打包成功后, 我们执行:
二、如何部署一个简单的 RocketMQ 集群
(本教程将演示如何利用编译结果,部署一个 1Namesrv + 1Broker 的 RocketMQ 集群)
1. 找到上一章节的编译打包结果
2. 安装 Namesrv, Broker
创建部署临时目录 (已创建则忽略)
拷贝 rocketmq-4.9.4-SNAPSHOT 里面的内容,分别拷贝到 /tiger/rocketmq/namesrv1, /tiger/rocketmq/broker1,
查看结果如下
3. 修改日志配置、jvm 配置等其他配置
修改 namesrv 配置
修改 namesrv 日志配置 。进入 namesrv 部署根目录, 修改日志配置文件。主要修改点:日志默认存储路径, 保存天数,每个日志文件大小等。
修改 namesrv JVM 配置。进入 namesrv 部署根目录:
修改 JVM 配置, 参考修改 JAVA_OPT 等如下:
修改 broker 配置。修改点类似 namesrv,只是修改的配置文件不一样。
修改 broker 日志配置 (实际部署需要 )。进入 broker 部署根目录:
编辑日志配置文件:
修改 brokerJVM 配置。进入 broker 部署根目录
修改 JVM 配置文件
4. 启动集群并测试发送、消费
启动 namesrv。
启动 broker
check namesrv 和 broker 进程启动是否正常:
发送、消费消息来验证集群是否正常
设置 namesrv 环境变量:
进入 broker 根目录
发送消息
发送成功会打印:
消费消息
消费成功会打印:
三、如何使用 Java 发送和消费消息
(本教程将简单演示如何使用纯 java client 发送和消费消息。)
1. 下载 java 代码 demo
2. 打包,执行代码 demo
找到当前实验环境的公网 ip,替换 mvn exec:java 命令中的 namesrv ip 地址后,再执行命令, 可以看到正常生产和消费输出
3. Demo 代码说明
RocketMQ Java Client 使用的套路分为三个步骤
步骤 1: 创建生产者、消费者实例
步骤 2: 设置实例属性或者参数
步骤 3: 启动
比如消费代码如下
四、如何使用 Spring 接入 RocketMQ
(本教程将演示如何在 spring 框架中使用 RocketMQ 发送、消费消息。)
1. 下载 RocketMQ Spring 代码 demo
2. 打包,执行代码 demo
找到当前实验环境的公网 ip,替换 mvn exec:java 命令中的 namesrv ip 地址后,再执行命令, 可以看到正常生产和消费输出
3. Demo 代码说明
RocketMQ Spring Client 中生产者使用的套路分为两个步骤
步骤 1: 创建 RocetMQ 客户端模板对象: RocketMQTemplate, 并且注入 namesrv 等参数。
步骤 2: 调用 RocketMQTemplate 实例的方法即可。
比如注入生产者代码如下
RocketMQ Spring Client 中消费者只需要一步就可以直接使用
继承 RocketMQListener 类,实现 onMessage()方法即可, demo 代码如下:
五、如何使用 Golang 接入 RocketMQ
(本教程将演示如何使用 golang 发送、消费消息。)
1. 下载 RocketMQ Golang 代码 demo
2. 打包,执行代码 demo
找到当前实验环境的公网 ip,启动命令添加正确的 namesrv 地址,可以看到正常生产和消费输出
3. Demo 代码说明
RocketMQ Golang Client 中生产者、消费者使用的套路和 Java client 十分相似, 只是生产者、消费者属性是初始化的时候直接设置。
六、如何使用 Python 接入 RocketMQ
(本教程将演示如何使用 python 发送、消费消息。)
**安装 python 相关环境 **
1.1 python2.7 实验环境安装
1.2 安装 cpp 动态库
1.3 安装 python 客户端
2. 下载 RocketMQ Golang 代码 demo
3. 执行生产者 demo 代码
找到当前实验环境的公网 ip,启动命令添加正确的 namesrv 地址,可以看到正常生产和消费输出
3. Demo 代码说明
RocketMQ Python Client 中生产者、消费者使用的套路和 Java client 十分相似, 只是生产者、消费者属性是初始化的时候直接设置。
生产者代码 demo 如下:
七、如何使用 C++接入 RocketMQ
(本教程将演示如何使用 C++发送、消费消息。)
**安装 cpp 动态库以及 gcc 相关环境 **
1.1 安装 g++,gcc 等
1.2 安装 cpp 动态库
2. 下载 RocketMQ C++ 代码 demo
3. 执行生产者 demo 代码
找到当前实验环境的公网 ip,启动命令添加正确的 namesrv 地址,可以看到正常生产和消费输出
3. Demo 代码说明
RocketMQ C++ Client 中生产者、消费者使用的套路和 golang client 十分相似, 只是生产者、消费者属性是初始化的时候直接设置。
比如生产者代码 demo 如下:
评论