Python基于windows操作RocketMQ
RocketMQ 是一款高性能的分布式消息中间件,广泛用于高并发和大规模数据处理的场景。虽然 RocketMQ 的官方 SDK 主要基于 Java,但我们可以借助 JPype 在 Python 中调用 Java 代码,从而实现 Python 端的消息生产与消费。
本文将从 环境准备、RocketMQ 依赖下载、Python 代码实现 三个方面,详细讲解如何在 Python 中使用 RocketMQ。
1. 环境准备
在开始之前,我们需要确保 Java 环境 和 Python 依赖 已经正确安装。
1.1 安装 Java
RocketMQ 依赖 Java 运行环境,因此你需要安装 JDK 8 或以上。
Windows 用户
- 访问 Oracle JDK 下载页面 或者 OpenJDK
- 下载并安装 JDK
- 配置环境变量(如
JAVA_HOME
)
Linux / macOS 用户
# 安装 OpenJDK 11
sudo apt update && sudo apt install openjdk-11-jdk -y # Ubuntu
brew install openjdk@11 # macOS
安装完成后,使用以下命令检查 Java 版本:
java -version
如果输出类似于 openjdk version "11.0.x"
,说明 Java 环境已正确安装。
1.2 安装 Python 及依赖
我们需要 Python 3.9+,并安装 JPype 以便在 Python 中调用 Java 代码:
pip install jpype1
可以使用以下命令检查是否安装成功:
import jpype
print(jpype.isJVMStarted()) # False 说明 JVM 还未启动
2. 下载 RocketMQ 依赖
RocketMQ 的 Java SDK 依赖多个 JAR 包,我们需要下载并引入它们。
2.1 下载 RocketMQ
-
下载 RocketMQ 二进制发行包:访问 Apache RocketMQ 官方下载页面,在 4.9.4 版本下,选择合适的二进制包进行下载。
-
解压缩下载的文件:下载完成后,解压缩该文件。
-
查找
rocketmq-client-4.9.4.jar
:在解压后的目录中,您可以找到rocketmq-client-4.9.4.jar
文件。
请注意,RocketMQ 的客户端库可能需要其他依赖库才能正常运行。建议您参考 RocketMQ 官方文档 以获取更多信息。
解压后,我们需要 lib 目录 下的 JAR 包。
2.2 获取 RocketMQ JAR 包
如果你已经安装了 RocketMQ,JAR 包通常位于:
rocketmq-all-4.9.4-bin-release/lib/
其中包括:
rocketmq-client-4.9.4.jar
rocketmq-common-4.9.4.jar
rocketmq-remoting-4.9.4.jar
fastjson-1.2.73.jar
等
将 lib
目录路径记录下来,稍后 Python 代码会用到。
3. 使用 Python 操作 RocketMQ
现在我们可以使用 JPype 调用 RocketMQ 进行 消息生产与消费。
3.1 启动 JVM 并加载 JAR
Python 代码需要手动启动 JVM,并引入 RocketMQ 的 JAR 文件:
import os
import glob
import jpype
import jpype.imports
from jpype import JClass
# 指定 JVM 路径
JVM_PATH = r"E:\Java\bin\server\jvm.dll" # 请替换为你的 jvm.dll 路径
# 指定 RocketMQ JAR 包目录
LIB_DIR = r"C:\Users\EDY\Downloads\rocketmq-all-4.9.4-bin-release\lib"
# 获取所有 JAR 文件
jar_files = glob.glob(os.path.join(LIB_DIR, "*.jar"))
classpath_str = os.pathsep.join(jar_files)
# 启动 JVM
if not jpype.isJVMStarted():
jpype.startJVM(JVM_PATH, "-Djava.class.path=" + classpath_str)
print("[成功] RocketMQ JAR 加载完成")
3.2 生产者(发送消息)
3.3 消费者(接收消息)
4. 运行 Python RocketMQ 客户端
- 启动 RocketMQ NameServer 和 Broker 如果是本地运行,需要启动 RocketMQ:
nohup sh bin/mqnamesrv & nohup sh bin/mqbroker -n localhost:9876 &
- 运行 Python 代码 运行 Python 消费者:
运行 Python 生产者:python rocketmq_consumer.py
python rocketmq_producer.py
5. 总结
本文介绍了如何使用 JPype 在 Python 中调用 RocketMQ,主要包括:
✅ 安装 Java 和 Python 依赖
✅ 下载 RocketMQ 并获取 JAR 包
✅ 在 Python 中启动 JVM 并加载 RocketMQ
✅ 编写生产者和消费者代码
✅ 运行并测试消息发送与消费
完整消费者生产者代码
现在,你已经可以在 Python 中使用 RocketMQ 进行消息队列处理了!🚀