diff --git a/Software/System/NATS/NATS_详解.md b/Software/System/NATS/NATS_详解.md index 25e465a..0a1ce60 100644 --- a/Software/System/NATS/NATS_详解.md +++ b/Software/System/NATS/NATS_详解.md @@ -56,7 +56,13 @@ go get github.com/nats-io/nats.go/ 启动 NATS 服务: ```bash +# 基本用法 nats-server +# 绑定监听地址,指定监听端口 +nats-server -a -p +# 显示调试信息 +nats-server -V +nats-server -VV ``` ## 3.Golang Client API @@ -73,6 +79,11 @@ nats-server ### 3.6.通配符订阅 +可用 “\*” 和 “\>” 作为通配符,其中 “\>” 用作宽容匹配,而 “\*” 用作严格的匹配。如: + +* foo.\* 匹配 foo.bar、foo.baz,但是不匹配 foo.bar.baz +* foo.\> 匹配 foo.bar、foo.baz、foo.bar.baz、foo.bar.1 + ### 3.7.队列订阅 如果我们把 subscriber 分组,那么当 publisher 往 subject 上发布一条消息后,同一组里只有一个 subscriber 会收到此消息(每个成员都有相同的机会接收该消息),从而实现了负载均衡: @@ -109,6 +120,49 @@ wg.Wait() ### 4.2.nats +nats 工具是以前 nats-sub 和 nats-pub 等工具的集合,可通过该工具订阅和发布消息。通过 [官方 gihub](https://github.com/nats-io/natscli) 下载对应安装包进行安装。 + +#### 4.2.1.创建 Context + +使用 nats 工具之前需要先创建 Context,一个 Context 可以理解为一个通信上下文,Context 中指定的通信的目标服务器,可以有多个 Context 存在,但同时只有一个 Context 处于激活状态: + +```bash +# 添加 Context +nats context add --server --description <"description"> +# 查看全部已添加的 Context +nats context ls +# 激活某 Context +nats context set +# 删除某 Context +nats context rm +``` + +#### 4.2.2.订阅/发布主题 + +```bash +# 订阅主题 +nats sub [] [] +# 如 +nats sub cli.demo +# 发布主题 +nats pub [] [] +# 如 +nats pub cli.demo "hello world" +``` + +#### 4.2.2.请求/回复主题 + +```bash +# 回复主题(一般用作服务) +nats reply [] [] +# 如:提供北京天气的服务 +nats reply 'cli.weather.beijing' 'Sunny' +# 请求主题(客户端) +nats request [] [] +# 如:客户端获取北京天气信息 +nats request "cli.weather.beijing" 'Weather Service' --raw +``` + ### 4.3.nk ### 4.4.nsc