跳至正文
Wener Notes

NATS

约 2 分钟阅读
  • 支持 JetStreaming
  • 支持 WebSocket - 能够利用 HTTP 基础设施
  • 支持 JWT Auth
  • 支持 Auth Resolver - 通过 nats service 监听实现自定义 auth
  • 支持 Group Consumer
  • 支持 RPC -> Load Balance - Request/Reply
  • 支持 KV
  • 支持 ObjectStore
bash
# 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

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • Queue Awesome
    笔记 · nats-io/nats-server

    持久化 · 顺序性 · 消息交付保证 · 语言支持 · 维护难易度 · 单机 · 集群 · 功能 · 延迟队列 · 请求 & 响应 · Dedup · 优先级队列 · 死信队列 · 重试队列 · 消费模式 - 推拉 · 广播消费 · 消息回溯 - 是否持久化

  • Queue FAQ
    笔记 · Nats

    Event -> EventBus · 事件 - 强调发生了什么 · 不包含业务属性,通用 - 无指向性 · 通常 fire and forget · 用于 集成、解耦、触发交互 · 多个 外部/内部消费者 · Message -> Queue

参考资料

GitHub14 条
其他外链12 条
最近更新commit f5e9e23编辑