与其他pub-sub子系统一样,Pulsar中的主题被命名为从生产者向消费者传输信息的频道. Topic的名称为符合良好结构的URL:
{persistent|non-persistent}://tenant/namespace/topic
Topic名称组成 | 说明 |
---|---|
持久化 / 非持久化 | 用来标识 topic 的类型。 Pulsar 支持两种主题类型:持久化和非持久化。 主题默认是持久化类型,如果不特殊指定主题类型,那主题就是持久化的。 对于持久化的主题,所有的消息都会被持久化的保存到磁盘当中(如果 broker 不是单机模式,消息会被持久化到多块磁盘),而非持久化的主题的数据不会被保存到磁盘里面。 |
租户 | 实例中的topic租户。租户对Pulsar的多租户至关重要,并且分布在集群中。 |
命名空间 | 将相关联的 topic 作为一个组来管理,是管理 Topic 的基本单元。 大多数对 topic 的管理都是对命名空间的一项配置。 每个租户里面可以有一个或者多个命名空间。 |
topic | 名字的最后一部分。topic名称在pulsar实例中没有特殊意义。 |
无需显式创建新topics
不需要在Pulsar中明确创建topic.如果客户端尝试从不存在的主题当中生产消息或消费消息,Pulsar 将会自动使用该主题名称在该命名空间下创建同名的主题。如果在客户端创建topic时未指定租户或命名空间,则在默认租户和命名空间中创建topic。还可以在指定的租户和命名空间中创建topic,例如比如persistent://my-tenant/my-namespace/my-topic.Persistent://my-tenant/my-namespace/my-topic
表示my topic主题是在my tenant的my命名空间中创建的。
命名空间是租户内部逻辑上的命名术语。 可以通过admin API在租户下创建多个命名空间。 例如,包含多个应用程序的租户可以为每个应用程序创建单独的命名空间。 Namespace使得程序可以以层级的方式创建和管理topic Topicmy-tenant/app1 ,它的namespace是app1这个应用,对应的租户是 my-tenant。 你可以在namespace下创建任意数量的topic。