diff --git a/doc/zh/nats.md b/doc/zh/nats.md new file mode 100644 index 000000000..2d4ab59ba --- /dev/null +++ b/doc/zh/nats.md @@ -0,0 +1,151 @@ +# NATS + +NATS是一个开源、轻量级、高性能的分布式消息中间件,实现了高可伸缩性和优雅的 `Publish` / `Subscribe` 模型,使用 `Golang` 语言开发。NATS的开发哲学认为高质量的QoS应该在客户端构建,故只建立了 `Request-Reply`,不提供 1.持久化 2.事务处理 3.增强的交付模式 4.企业级队列。 + +## 使用 + +### 创建消费者 + +``` +$ php bin/hyperf.php gen:nats-consumer DemoConsumer +``` + +如果设置了 `queue`,则相同的 `subject` 只会被一个 `queue` 消费。若不设置 `queue`,则每个消费者都会受到消息。 + +```php +nats->publish('hyperf.demo', [ + 'id' => 'Hyperf', + ]); + + return $this->response->success($res); + } +} + +``` + +使用 request 投递消息。 + +```php +nats->request('hyperf.reply', [ + 'id' => 'limx', + ], function (Message $payload) { + var_dump($payload->getBody()); + }); + + return $this->response->success($res); + } +} + +``` + +使用 requestSync 投递消息。 + +```php +nats->requestSync('hyperf.reply', [ + 'id' => 'limx', + ]); + + return $this->response->success($message->getBody()); + } +} + +``` \ No newline at end of file diff --git a/doc/zh/summary.md b/doc/zh/summary.md index a9e631811..90d03b73b 100644 --- a/doc/zh/summary.md +++ b/doc/zh/summary.md @@ -83,6 +83,7 @@ * [Task 机制](zh/task.md) * [枚举类](zh/constants.md) * [Snowflake](zh/snowflake.md) + * [Nats](zh/nats.md) * 应用部署