nanomsg / NNG 消息库完全教程
教程简介
nanomsg 是一个轻量级、高性能的消息传递库,由 ZeroMQ(0MQ)的原作者 Martin Sústrik 发起,旨在提供一套简洁的"可扩展性协议"(Scalability Protocols)。其继任者 NNG(nanomsg-next-generation)在保持 API 兼容的基础上,引入了现代异步 I/O、TLS 加密、更好的可嵌入性等特性。
本教程共 10 章,从基础概念到生产实战,带你系统掌握这两个库。
适用读者
| 角色 | 学习目标 |
|---|---|
| 后端工程师 | 在微服务间构建高效、可靠的进程间/网络通信 |
| 嵌入式开发者 | 使用轻量级消息库替代重量级 MQ(RabbitMQ、Kafka) |
| 分布式系统架构师 | 理解可扩展性协议,为 IoT / 边缘计算场景选型 |
| DevOps 工程师 | 在 Docker / Kubernetes 中部署 nanomsg/NNG 服务 |
前置知识
- C 语言基础(能阅读示例代码)
- Linux 命令行操作
- 基本的网络编程概念(TCP、Socket)
目录
| 章节 | 标题 | 核心内容 |
|---|---|---|
| 01 | nanomsg / NNG 概述 | 背景、与 ZeroMQ 对比、协议分类、适用场景 |
| 02 | 安装与环境搭建 | nanomsg / NNG 编译安装、语言绑定、静态库构建 |
| 03 | 可扩展性协议详解 | PAIR、PUB/SUB、REQ/REP、PUSH/PULL、Bus、Survey |
| 04 | nanomsg C API 详解 | Socket 生命周期、绑定/连接、收发消息、关闭与错误处理 |
| 05 | NNG 现代 API 详解 | 异步 I/O、上下文、Listener/Dialer、零拷贝 |
| 06 | 可扩展性与性能 | 连接数、内存占用、消息大小、基准测试与调优 |
| 07 | TLS 与安全通信 | TLS 配置、WSS、mTLS、证书管理 |
| 08 | IPC 与进程间通信 | inproc、Unix Socket、共享内存、性能对比 |
| 09 | Docker 与微服务 | 容器间通信、网络配置、编排示例 |
| 10 | 最佳实践与总结 | 协议选型、错误处理、性能调优、替代方案对比 |
如何使用本教程
- 顺序学习:从第 1 章开始,逐步深入
- 按需查阅:根据上表直接跳转到感兴趣的章节
- 动手实践:每章都包含可直接编译运行的 C 代码示例
代码约定
// 所有示例代码均使用 C 语言
// 编译命令统一为:
// nanomsg: cc example.c -lnanomsg -o example
// NNG: cc example.c -lnng -o example
注意:示例基于 Linux 环境编写,macOS / Windows 用户需参考对应平台的安装指南。
快速导航
- 想了解 nanomsg 和 NNG 是什么?→ 第 1 章:概述
- 想快速跑起来?→ 第 2 章:安装
- 想选对协议?→ 第 3 章:协议详解
- 想用于生产环境?→ 第 7 章:安全通信 + 第 10 章:最佳实践