# 基于主题的消息

2,857 / 5,000 翻译结果

## 基于主题的消息传递

从根本上说，NATS 是关于发布和侦听消息的。这两者都严重依赖于\_Subjects\_。

**什么是主题？** 在最简单的情况下，主题只是形成名称的字符串，发布者和订阅者可以使用该名称来查找对方。它有助于将消息范围限定为流或主题。

![](/files/nYJbEBR0VwUAsOhl2Cv6)

#### 主题名称允许使用字符

为了跨客户端的兼容性，我们建议使用 ASCII 字符（将来可能会更改）。

**推荐字符：** `a` 到 `z`、`A` 到 `Z` 和 `0` 到 `9`（名称区分大小写，不能包含空格）。 \*\*特殊字符：\*\*句点`.`（用于分隔主题中的标记）和`*`以及`>`（`*`和`>`用作通配符）。 **保留的主题名称：** 按照惯例，以 `$` 开头的主题名称保留给系统使用（例如，以 `$SYS` 或 `$JS` 或 `$KV` 开头的主题名称等...）

### 主题层次结构

`.` 字符用于创建主题层次结构。例如，世界时钟应用程序可能会定义以下内容以对相关主题进行逻辑分组：

```markup
time.us
time.us.east
time.us.east.atlanta
time.eu.east
time.eu.warsaw
```

### 通配符

NATS 提供了两个 *通配符*，它们可以代替点分隔主题中的一个或多个元素。**订阅者可以使用**这些通配符通过单个订阅收听多个主题，但**发布者**将始终使用完全指定的主题，而**不**使用通配符。

#### 匹配单个标记

第一个通配符是 `*`，它将匹配单个标记。例如，如果应用程序想要监听东部时区，他们可以订阅 `time.*.east`，这将匹配 `time.us.east` 和 `time.eu.east`。

**译者注 单个标记，不是单个字母**

![](/files/HITCi6ayw4nMxY4bszFZ)

#### 匹配多个标记

第二个通配符是`>`，它将匹配一个或多个标记，并且只能出现在主题的末尾。例如，`time.us.>` 将匹配 `time.us.east` 和 `time.us.east.atlanta`，而 `time.us.*` 只会匹配 `time.us.east`，因为它不能匹配多个令牌。

![](/files/cPOX5jfYh3Vi8dN652oc)

#### 监控和分接头

根据您的安全配置，通配符可用于通过创建有时称为 *分接头* 的东西进行监控。在最简单的情况下，您可以为`>` 创建一个订阅者。此应用程序将在安全设置的限制下接收在您的 NATS 集群上发送的所有消息。

#### 混合通配符

通配符 `*` 可以在同一主题中出现多次。两种类型都可以使用。例如，`*.*.east.>` 将收到 `time.us.east.atlanta`。

### 主题标记

建议将主题中的最大标记数保持在最大 16 个的合理值。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.natsclub.cn/cn/nats-gai-nian/subjects.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
