让 NATS 调试更直观、更高效
NatSight 专注三件事:订阅源管理、实时订阅、消息发送。 通过清晰的主题分组视图与“所有消息”聚合视图,快速定位消息流问题。
核心能力
参考市面开源工具的“少而精”设计:把最常用的调试动作做到顺手,而不是堆砌概念。
图形化调试(主题分组视图)
消息按主题分组展示,并提供“所有消息”聚合视图,快速切换定位问题。
订阅源管理
新增/取消订阅一目了然;每个主题可查看消息计数,便于追踪与清理。
实时订阅
订阅后实时接收消息;支持通配符主题,适合日志、事件、指标等场景。
消息发送(快速验证链路)
支持多行文本发送;主题可从订阅列表选择或手动输入,快速验证订阅/路由链路。
多连接管理
管理多个 NATS 环境连接(开发/测试/生产),减少频繁改地址带来的心智负担。
工作流:3 步完成一次调试
这就是你每天会重复做的事情,我们把它做得更“顺手”。
选择连接
在连接管理里选择/创建目标环境连接(本地 / 测试 / 生产)。
管理订阅源
添加订阅主题(支持通配符),按主题查看消息或切到“所有消息”。
发送与验证
向指定主题发送测试消息,配合实时订阅快速验证链路与路由。
快速开始(贴近真实工作场景)
下面这些步骤不依赖“理想情况”,按你日常调试 NATS 的方式来写:先确认服务可用,再连接,再订阅/发送验证链路。
前置条件
你需要一个可连接的 NATS WebSocket 服务端(本机或远程)。如果是团队环境,通常还会涉及账号/凭证与网络策略。
# 常见默认端口
ws://127.0.0.1:9222
创建连接(建议按环境命名)
建议把连接按 “dev / test / prod” 分组,避免把调试消息误发到错误环境。切换连接后再开始订阅与发送。
订阅主题(先从“窄”到“宽”)
初次定位问题时,先订阅最明确的业务主题;确实不知道消息落点时,再用通配符扩大范围,避免消息淹没信号。
# 精准订阅(示例)
orders.created
# 扩大范围(示例)
orders.>
logs.>
发送验证(最小消息,快速闭环)
发送测试消息时建议从最小可用 payload 开始,确认链路 OK 后再逐步加字段。发送后用“所有消息”确认是否有其他副作用主题。
适用场景
页面文案只写你现在确实具备的能力,不夸大,不“画饼”。
微服务事件调试
订阅关键业务事件主题,观察消息是否到达、是否被正确路由。
日志/指标订阅
使用通配符订阅日志或指标主题,按主题分组查看消息密度变化。
发布回归测试
在不同环境连接之间切换,发送测试消息验证服务端行为与兼容性。
使用技巧与注意事项
把常见的“卡点”提前写出来:更省时间,也更符合真实使用。
快捷键
发送区支持快捷发送:Ctrl + Enter。建议在验证链路时配合最小消息快速迭代。
先看“所有消息”,再回到主题
不确定消息落点时先看“所有消息”把消息流抓住;确定主题后切回按主题分组视图进行精确定位与对照。
安全与权限(现实里经常被忽略)
在共享环境中,建议使用最小权限账号;避免订阅过宽通配符导致获取到不该看到的消息。生产环境调试优先“只读观察”。
消息太多怎么办?
如果通配符订阅导致消息爆量,建议缩小主题范围、按业务前缀拆分订阅源,并优先在“按主题分组”里找出最热主题再针对性处理。
FAQ
一些常见问题,按开源项目的写法给出简短直接的回答。
它支持“按主题分组”和“所有消息”吗?
支持。你可以在左侧主题列表中切换单个主题,或者选择“所有消息”查看聚合消息流。
支持通配符订阅吗?
支持。可订阅如 logs.>、metrics.* 等主题模式。
支持 JSON 自动格式化显示吗?
当前版本以原始文本显示为主(不做自动格式化)。如果你后续要加,我们可以把它作为可选开关,避免对非 JSON 内容造成干扰。
我该如何避免把测试消息发到生产?
建议把连接按环境命名并固定颜色/标签(如果你后续要做 UI 标识),生产环境尽量只做订阅观察;确需发送时使用专用主题前缀(如 debug.*)并限制账号权限。
为什么有时看不到消息?
常见原因包括:连接环境选错、订阅主题写错(或通配符范围不匹配)、服务端没有发布到该主题、以及消息发布在你订阅之前已发送(NATS Core 默认不做持久化)。建议先用最精准主题验证,再逐步扩大范围。