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 项目**,如下面的图片所示:

ZeroMQ Installation

这将为您提供一个“新建 Maven 项目”窗口。在其中,点击 **下一步** 按钮。

ZeroMQ Installation

在下一个窗口中,在 **过滤器** 文本框中输入“Apache”,选择 **quickstart** 并点击 **下一步**。

ZeroMQ Installation

然后,在 **GroupId** 文本框中输入“com.zeromq”,在 **ArtifactId** 文本框中输入“zeromq”,然后点击 **完成**(您可以为“GroupId”和“ArtifactId”选择任何值)。

ZeroMQ Installation

点击 **完成** 后,在您的终端中输入 '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);
      }
   }
}

输出

//it will simply send the message to the receiver

订阅者

以下是“订阅者”示例:

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://127.0.0.1:5555");
      socket.subscribe("".getBytes()); // Subscribe to all messages

      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 包最常见的方法。以下是步骤:

打开终端和命令提示符

  • **在 Windows 上**,按 **Windows + 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

# Create a ZeroMQ context
context = zmq.Context()

# Create a PUB socket
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5555")

while True:
   # Send a message every second
   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

# Create a ZeroMQ context
context = zmq.Context()

# Create a SUB socket
socket = context.socket(zmq.SUB)
socket.connect("tcp://127.0.0.1:5555")

# Subscribe to all messages (empty string as subscription)
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!
广告