pulsar和其他的发布订阅系统一样,Pulsar 中的 topic 是被命名的通道,用做从producer到 consumer传输消息。 Topic的名称是具有明确定义结构的URL:
在2.0版本之前topic形式如下
{persistent|non-persistent}://property/cluster/namespace/topic
在2.0版本后topic发生了一些变化
- 不再使用集群部分
- 属性变更为租户
- 可以使用命名系统简化topic
变更后topic形式:{persistent|non-persistent}://tenant/namespace/topic
- persistent|non-persistent表示数据是否持久化(Pulsar支持消息持久化和非持久化两种模式)
- Tenant为租户
- Namespace一般聚合一系列相关的Topic,一个租户下可以有多个Namespace
Topic | 默认值 |
---|---|
topic 类型 | persistent |
租户 | public |
命名空间 | default |
例如:
输入 topic 名称 | 转换后的 topic 名称 |
---|---|
my-topic | persistent://public/default/my-topic |
my-tenant/my-namespace/my-topic | persistent://tenant/namespace/topic |
对于非持久化 topics,需要指定 topic 的完整名称
上图中Property即为租户(tenant),每个租户下可以有多个Namespace,每个Namespace下有多个Topic。
Namespace是Pulsar中的操作单元,包括Topic是配置在Namespace级别的,包括多地域复制,消息过期策略等都是配置在Namespace上的。