本质上,NATS就是消息的发布和监听。这两者在很大程度上都依赖于将消息映射为流或话题的主题。简单来说,主题只是一个字符串,作为发布者和订阅者可以用来查找彼此的名称。
NATS服务器保留了一些特殊的字符,规范规定在主题名中只能使用“字母数字”和“.”。主题区分大小写,不能包含空格。为了跨客户端的安全起见,应该使用ASCII字符,尽管将来可能会有所更改。
主题层次结构
这个.字符用于创建主题层次结构。例如,世界时钟应用程序可以定义以下内容,以逻辑方式对相关主题进行分组:
time.us
time.us.east
time.us.east.atlanta
time.eu.east
time.eu.warsaw
通配符
NATS提供了两个通配符,可以代替点分隔主题中的一个或多个元素。订阅服务器可以使用这些通配符订阅一次,就可以侦听多个主题。但发布服务器将始终使用完全指定的主题,而不能使用通配符。
匹配单个令牌
第一个通配符是*它将匹配单个令牌。例如,如果应用程序想要监听东部时区,它们可以订阅time.*.east,它将匹配time.us.east和time.eu.east。
匹配多个令牌
第二个通配符是>,它将匹配一个或多个令牌,并且只能出现在主题的末尾。例如,time.us.>将匹配time.us.east和time.us.east.atlanta,而time.us.*将只匹配time.us.east,因为它不能匹配多个令牌。
监控和窃听
根据您的安全配置,通配符可以通过创建有时称为窃听器的东西来用于监视。在最简单的情况下,您可以创建一个主题为>的订阅服务器。此应用程序将接收NATS群集上发送的所有消息(同样,这取决于您的安全设置)。
混合通配符
通配符*可以在同一主题中多次出现。两种类型都可以使用。例如,*.*.east.>将接收time.us.east.atlanta。