参考资料

  1. Groovy 是一种基于 JVM 的动态编程语言
  2. Scratch 是 MIT 媒体实验室开发的图形化编程语言
  3. AlmaLinux 是一个开源、企业级的 Linux 发行版
  4. docker安装包详细说明以及案例
  5. Apache Spark 是一个开源的分布式计算系统
  6. Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型编程语言
  7. Eclipse Temurin 是一个由 Adoptium 社区维护的开源 Java SE 发行版
  8. io.js是Node.js的一个分支,由社区主导开发,旨在提供更快的迭代和更开放的治理模式

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 配置正确。