ZeroMQ - 安装设置
学习 ZeroMQ 的第一步是在您的系统上安装核心 ZeroMQ 库,并且根据您使用的编程语言,您需要安装相应的语言绑定以在您的代码中与 ZeroMQ 交互。
例如,如果您使用的是 Python 语言,则需要安装 pyzmq,它为 ZeroMQ 提供 Python 绑定。
ZeroMQ 库的安装不依赖于操作系统。相反,它取决于编程语言及其各自的绑定依赖项。因此,安装步骤在不同的操作系统上通常是相似的。
如何在 Java 中设置 ZeroMQ?
以下说明将解释如何在 Java 中安装和设置 ZeroMQ 库。要在 Java 中安装和使用 ZeroMQ (ØMQ),您需要使用 ZeroMQ 的 Java 绑定。最常用的绑定是 JeroMQ,它是 ZeroMQ 的纯 Java 实现。
以下是在 Java 中安装 ZeroMQ 的分步指南 −
步骤 1:在 Java 中创建 Maven 项目
要使用 Java 创建 Maven 项目,请打开您喜欢的 IDE(我们使用 Eclipse),单击左上角的 文件 菜单,然后在显示的列表中选择 Maven 项目,如下图所示 −
这将为您提供一个"新建 Maven 项目"窗口。在其中,单击下一步按钮。
在下一个窗口中,在过滤器文本框中输入"Apache",选择quickstart并单击下一步。
然后,在GroupId文本框中输入"com.zeromq",在ArtifactId文本框中输入"zeromq",然后单击完成(您可以为"GroupId"和"ArtifactId"选择任意值)。
单击完成后,在终端中输入"y"并按 Enter。
步骤 2:添加 ZeroMQ 依赖项
在 Java 项目中安装 ZeroMQ 的最简单方法是使用 JeroMQ,它可以作为依赖项包含在您的项目中。
如果您使用 Maven 或 Gradle(两者都是 Java 开发工具)来管理项目,请将依赖项添加到您的 pom.xml 或 build.gradle 文件中。
<dependency> <groupId>org.zeromq</groupId> <artifactId>jeromq</artifactId> <version>0.5.3</version> </dependency> //for the latest SNAPSHOT --> <dependency> <groupId>org.zeromq</groupId> <artifactId>jeromq</artifactId> <version>0.6.0-SNAPSHOT</version> </dependency> //If you can't find the latest snapshot <repositories> <repository> <id>sonatype-nexus-snapshots</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
步骤 3:用 Java 编写您的第一个 ZeroMQ 程序
一旦 JeroMQ 包含在您的项目中,您就可以开始使用它。以下是 Java 中基本的 ZeroMQ 发布者和订阅者的示例 −
发布者
以下是"发布者"的基本示例 −
import org.zeromq.ZMQ; import org.zeromq.ZMQ.Context; import org.zeromq.ZMQ.Socket; public class Publisher { public static void main(String[] args) { Context context = ZMQ.context(1); Socket socket = context.socket(ZMQ.PUB); socket.bind("tcp://*:5555"); while (true) { socket.send("Hello, subscribers!".getBytes(), 0); } } }
输出
//它只会将消息发送给接收者
订阅者
以下是"订阅者"示例 −
import org.zeromq.ZMQ; import org.zeromq.ZMQ.Context; import org.zeromq.ZMQ.Socket; public class Subscriber { public static void main(String[] args) { Context context = ZMQ.context(1); Socket socket = context.socket(ZMQ.SUB); socket.connect("tcp://localhost:5555"); socket.subscribe("".getBytes()); // 订阅所有消息 while (true) { byte[] message = socket.recv(0); System.out.println("Received message: " + new String(message)); } } }
输出
上述程序显示由"发布者"发送的所有接收消息 −
Received message: Hello, subscribers! Received message: Hello, subscribers! Received message: Hello, subscribers! Received message: Hello, subscribers! Received message: Hello, subscribers! Received message: Hello, subscribers!
如何在 Python 中设置 ZeroMQ?
要在 Python 中下载并安装 ZeroMQ,我们需要下载与 ZeroMQ 绑定的 Python 库,即 PyZMQ 库,这是一个快速且轻量级的消息传递库。
PyZMQ 适用于任何合理的 Python 版本(应大于或等于 3.7)以及 PyPy。PyZMQ 用于没有消息代理的消息队列。
步骤 1:安装 PyZMQ
要安装 PyZMQ,我们可以使用 pip,这是安装 Python 包的最常用方法。步骤如下:
打开终端和命令提示符
- 在窗口上,按 window + R,输入 cmd,然后按 Enter。
- 在 Mac 或 Linux 上,打开终端。
运行 pip install 命令
要安装 PyZMQ,请在终端或命令提示符中运行以下命令:
pip install pyzmq
上述命令将下载并安装 PyZMQ 和 ZeroMQ 库。
Downloading pyzmq-26.2.0-cp312-cp312-win_amd64.whl.metadata (6.2 kB) Downloading pyzmq-26.2.0-cp312-cp312-win_amd64.whl (637 kB) --------------------- 637.8/637.8 kB 5.8 MB/s eta 0:00:00 Installing collected packages: pyzmq Successfully installed pyzmq-26.2.0 [notice] A new release of pip is available: 24.0 -> 24.2 [notice] To update, run: python.exe -m pip install --upgrade pip
步骤 2:验证
要确认 PyZMQ 是否已正确安装,请打开 Python shell 并运行以下命令。如果它打印出安装的 ZeroMQ 和 PyZMQ 版本并且没有任何错误,则安装成功。
>>> import zmq >>> print(zmq.zmq_version()) 4.3.5 >>> print(zmq.pyzmq_version()) 26.2.0 >>>
步骤 3:用 Python 编写您的第一个 ZeroMQ 程序
由于我们已经安装了 Python 消息库"PyZMQ",我们可以使用 ZeroMQ 编写 Python 程序。
发布者
以下是"发布者"的基本示例 −
import zmq import time # 创建 ZeroMQ 上下文 context = zmq.Context() # 创建 PUB 套接字 socket = context.socket(zmq.PUB) socket.bind("tcp://*:5555") while True: # 每秒发送一条消息 message = "Hello, ZeroMQ!" socket.send_string(message) print(f"Sent: {message}") time.sleep(1)
输出
Sent: Hello, ZeroMQ! Sent: Hello, ZeroMQ! Sent: Hello, ZeroMQ! Sent: Hello, ZeroMQ! Sent: Hello, ZeroMQ!
订阅者
以下是"订阅者"示例 −
import zmq # 创建 ZeroMQ 上下文 context = zmq.Context() # 创建 SUB 套接字 socket = context.socket(zmq.SUB) socket.connect("tcp://localhost:5555") # 订阅所有消息(空字符串作为订阅) socket.setsockopt_string(zmq.SUBSCRIBE, "") while True: message = socket.recv_string() print(f"Received: {message}")
输出
Received: Hello, ZeroMQ! Received: Hello, ZeroMQ! Received: Hello, ZeroMQ! Received: Hello, ZeroMQ! Received: Hello, ZeroMQ!