1. 安装 ZeroMQ
Ubuntu/Debian
# 安装 libzmq 库
sudo apt update
sudo apt install libzmq3-dev
# Python 绑定(可选)
pip install pyzmq
# C++ 绑定(可选)
sudo apt install libzmqpp-dev
CentOS/RHEL/Fedora
# CentOS/RHEL
sudo yum install zeromq-devel
# Fedora
sudo dnf install zeromq-devel
# 源码编译安装(通用方法)
wget https://github.com/zeromq/libzmq/releases/download/v4.3.4/zeromq-4.3.4.tar.gz
tar -xzf zeromq-4.3.4.tar.gz
cd zeromq-4.3.4
./configure
make
sudomake install
sudo ldconfig
2. 验证安装
# 检查库版本
pkg-config --modversion libzmq
# 或者使用 zmq 命令(如果安装时包含工具)
zmq_version
# Python 验证
python3 -c"import zmq; print(f'ZeroMQ {zmq.zmq_version()}')"
3. 常用 ZeroMQ 工具命令
zmq_tcp_echo(如果安装了 zeromq-tools)
# 启动 echo 服务器
zmq_tcp_echo server tcp://*:5555
# 客户端连接
zmq_tcp_echo client tcp://localhost:5555
perf 测试工具
# 启动延迟测试服务器
zmq_remote_lat tcp://*:5555
# 启动吞吐量测试服务器
zmq_local_thr tcp://*:5555 1000000
4. ZeroMQ 基础编程示例
Python 示例 - REQ/REP 模式
server.py:
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
message = socket.recv_string()
print(f"Received: {message}")
socket.send_string(f"Echo: {message}")
client.py:
import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
socket.send_string("Hello ZeroMQ")
response = socket.recv_string()
print(f"Response: {response}")
5. 网络诊断命令
# 查看 ZeroMQ 监听端口
netstat -tlnp | grep zmq
# 或使用 ss 命令
ss -tlnp | grep zmq
# 测试连接
telnet localhost 5555
# 或使用 nc
nc-zv localhost 5555
6. Docker 部署
# 使用官方镜像
docker run -it-p5555:5555 zeromq/zeromq
# 或使用 Dockerfile
FROM ubuntu:20.04
RUN apt update && apt install -y libzmq3-dev
7. 系统配置优化
# 查看系统限制
ulimit -n# 文件描述符限制
# 临时增加限制(针对当前会话)
ulimit -n65536
# 永久修改(编辑 /etc/security/limits.conf)
echo"* soft nofile 65536" >> /etc/security/limits.conf
echo"* hard nofile 65536" >> /etc/security/limits.conf
8. 性能监控
# 使用 netstat 监控连接
watch -n1'netstat -an | grep :5555'
# 使用 ss 命令(更高效)
watch -n1'ss -tlnp | grep 5555'
9. 常用端口和模式
端口用途模式
5555开发测试REQ/REP, PUB/SUB
5556开发测试PUSH/PULL
5560代理端口XREP/XREQ
5570集群通信ROUTER/DEALER
10. 故障排查
# 检查库路径
ldconfig -p | grep zmq
# 检查动态链接库
ldd /path/to/your/zmq/program
# 查看 ZeroMQ 错误日志
journalctl -u your-service-name | grep-i zmq
# 调试模式运行(Python)
ZMQ_DEBUG=1 python3 server.py
11. 卸载 ZeroMQ
# Ubuntu/Debian
sudo apt remove --purge libzmq3-dev
# 源码安装卸载
cd zeromq-4.3.4
sudomake uninstall
# 清理 Python 包
pip uninstall pyzmq