参考资料

  1. Caddy 是一个现代化的、开源的 Web 服务器和反向代理工具
  2. Apache Solr 是一个基于 Apache Lucene 构建的开源企业级搜索平台
  3. Jetty 是一个轻量级的开源 Java Web 服务器和 Servlet 容器,由 Eclipse 基金会维护
  4. docker安装mysql详细说明以及案例
  5. Known 是一个开源的内容发布平台
  6. OnlyOffice是一款开源办公套件
  7. Matomo(原名 Piwik)是一个开源的网站分析平台
  8. Consul 是 HashiCorp 公司开发的服务网格解决方案,

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