参考资料

  1. Draw 是一款开源的绘图工具
  2. Crux 是一个轻量级、高性能的 Linux 发行版,专为有经验的用户设计。
  3. Adminer(原phpMinAdmin)是一个轻量级、功能完整的数据库管理工具
  4. emlog 是一款基于 PHP 和 MySQL 的开源博客系统
  5. Elixir 是一种基于 Erlang 虚拟机的函数式编程语言
  6. Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统
  7. docker添加官方镜像源详细说明以及案例
  8. DPanel 是一个轻量级的 Web 面板工具

NATS 是一个高性能、轻量级的开源消息系统

NATS 简介

NATS 是一个高性能、轻量级的开源消息系统,支持发布/订阅、请求/响应和队列模式。适用于微服务、IoT 和云原生应用。

特点

  1. 高性能:低延迟、高吞吐量。

  2. 轻量级:占用资源少。

  3. 多种通信模式:发布/订阅、请求/响应、队列。

  4. 支持多种协议:NATS、NATS Streaming(JetStream)、WebSocket。

  5. 云原生友好:支持 Kubernetes、Docker。

  6. 多语言支持:Go、Java、Python、Node.js 等。

最新更新内容及时间

  • JetStream 持久化(2023年更新):支持消息持久化和流处理。

  • NATS 2.10(2023年):改进集群管理、安全性增强。

  • NATS Server 2.9(2022年):优化内存管理,提升性能。

镜像下载地址

官网地址

文档地址

Docker 安装示例

# 拉取并运行 NATS 服务器(默认端口 4222)
docker run -d --name nats-server -p 4222:4222 -p 8222:8222 nats:latest

# 启用 JetStream(持久化模式)
docker run -d --name nats-js -p 4222:4222 -p 8222:8222 nats:latest -js

.yaml 配置文件示例

# nats-server.conf
port: 4222
http_port: 8222

jetstream {
  store_dir: /data/nats
  max_memory: 1GB
  max_file: 10GB
}

cluster {
  name: "nats-cluster"
  port: 6222
  routes: [
    "nats://nats-node1:6222",
    "nats://nats-node2:6222"
  ]
}

常用错误及解决方法

  1. Error: Could not connect to NATS server

    • 检查 NATS 服务是否运行:docker psnats-server -v

    • 确保防火墙开放 4222 端口。

  2. JetStream not enabled

    • 启动时添加 -js 参数或配置 jetstream

  3. No responders available for request

    • 检查订阅服务是否在线,或超时时间是否太短。

  4. Insufficient Storage(JetStream)

    • 调整 max_memorymax_file 配置。

  5. TLS Handshake Error

    • 检查证书路径和权限,确保 NATS 配置正确。