namespace 和topic介绍
什么是命名空间(名称空间)
- namespace是Pulsar中最基本的管理单元,
- 可以在namespace中进行设置权限、调整副本设置,管理跨集群的消息复制,控制消息策略等关键操作。
- 一个主题topic可以继承其所对应的namespace的属性,因此我们只需对namespace的属性进行设置,就可以一次性设置该namespace中所有主题topic的属性。
namespace分类
namespace有本地namespace和全局namespace两种
-
本地namespace仅对定义它的集群可见
-
全局namespace跨集群可见,可以使同一个数据中心的集群,也可以是跨地域中心的集群,这取决于namespace中是否设置了跨集群拷贝数据功能
-
本地和全局namespace都可以通过一定设置进行跨团队和跨组织共享。一旦生产者获得了namespace的写入权限,那么它就可以向namespace中的所有topic主题写入数据。若主题不存在,则在第一次写入时动态创建。
什么是topic
-
Topic即主题,在一个namespace下, 可以定义多个Topic
-
通过Topic进行数据的分类划分, 将不同的类别的消息放置到不同Topic, 消费者也可以从不同Topic中获取到相关的消息, 是一种更细粒度的消息划分操作, 同时在Topic下可以划分为多个分片, 进行分布式的存储操作, 每个分片下还存在有副本操作, 保证数据不丢失, 当然这些分片副本更多是由bookkeeper来提供支持
-
Pulsar 提供持久化与非持久化两种topic。 持久化topic是消息发布、消费的逻辑端点。 持久化topic地址的命名格式为:
persistent://tenant/namespace/topic
-
非持久topic应用在仅消费实时发布消息与不需要持久化保证的应用程序。 通过这种方式,它通过删除持久消息的开销来减少消息发布延迟。 非持久化topic地址的命名格式为:
non-persistent://tenant/namespace/topic