Skip to main content

NATS

tip
  • 支持 JetStreaming
  • 支持 WebSocket - 能够利用 HTTP 基础设施
  • 支持 JWT Auth
  • 支持 Auth Resolver - 通过 nats service 监听实现自定义 auth
  • 支持 Group Consumer
  • 支持 RPC -> Load Balance - Request/Reply
  • 支持 KV
  • 支持 ObjectStore
# Docker
# 服务端 - 大约 10mb
docker run --rm -it --name nats -p 4222:4222 -p 6222:6222 -p 8222:8222 nats:alpine -js

# macOS
brew install nats-server
nats-server

# nats 工具需要额外 tap 或者直接下载 https://github.com/nats-io/natscli/releases
brew tap nats-io/nats-tools
brew install nats-io/nats-tools/nats
nats --help

nats account info
nats rtt

Notes

  • Subject-Based Messaging
    • Subject 名字 [a-z0-9.]+
    • 级/层/token
    • 建议不超过 16
    • 通过 a.b 方式实现级联
    • 单层匹配 a.*.c - 匹配 a.b.c
    • 多层匹配 a.b.> - 匹配 a.b.c.d
    • *.*.c.> - 匹配 a.b.c.d
  • Publish-Subscribe
  • Queue Groups / Queue Subscribe / Consumer Group
    • Kafka Consumer Group 概念
    • 多个 consumer 共享消费位置
    • queue 表示这个 group - 有唯一的名字
    • 如果不设置 durable 则会在 consumer 关闭完时移除 queue 信息
    • durable 为一个 consumer 的名字
    • 当所有 consumer unsub 时,也会移除 queue 信息
  • ACK
    • 响应一条消费的消息
    • 返回 +ACK
  • Sequence Numbers
  • Leaf Nodes
    • 路由消息到其他集群
  • gateways
    • 连接多个集群组成 full mesh

nats-top