简介
普通的主题仅仅被保存在单个 broker中,这限制了主题的最大吞吐量。分区topics是一种特殊类型的topics,由多个broker处理,因此允许更高的吞吐量。
分区主题实际是通过在底层拥有 N 个内部主题来实现的,这个 N 的数量就是等于分区的数量。 当向分区的topic发送消息,每条消息被路由到其中一个broker。 Pulsar自动处理跨broker的分区分布。
下图对此做了阐明:
Topic1主题有五个分区(P0到P4),分为三个代理。 因为分区多于broker数量,其中有两个broker要处理两个分区。第三个broker则只处理一个。(再次强调,分区的分布是Pulsar自动处理的)。
这个topic的消息被广播给两个consumer。路由模式决定每条消息应该发布到哪个分区,而订阅模式决定哪些消息应该发布到哪个consumers。
在大多数情况下,可以分别决定路由和订阅模式。 通常来讲,吞吐能力的要求,决定了 分区/路由 的方式。订阅模式则应该由应用的语义来做决定。
就订阅模式的工作方式而言,分区主题和普通主题之间没有区别,因为分区只决定消息由生产者发布、消费者处理和确认之间的情况。
分区主题需要通过管理API显式创建。创建主题时可以指定分区数。
路由模式
发布到分区主题时,必须指定路由模式。路由模式决定每条消息应该发布到哪个分区,即哪个内部主题。
<