Mafka&Plusar主题运维特性
目录
分区主题API
Create a partitioned topic.
Delete a partitioned topic.
Set the replication clusters for a topic.
Remove the replication clusters from a topic.
Truncate a topic.
Unload a topic
update the number of partitions on an existing partitioned topic (分区必须扩容,不能缩容)
主题Bundle特性
Pulsar 实现了 Broker 的动态负载均衡,无需管理员手工干预。Pulsar 从架构上分离了存储层和计算层,可以更加灵活地分配 Broker 与主题的映射关系。Pulsar Broker 将消息持久化保存到存储服务器,当在 Broker 之间重平衡主题时,无需将消息从一个 Broker 复制到另一个 Broker。在这种情况下,新加入的 Broker 只需要查找 Metadata Store 并指向主题消息所在的正确存储服务器即可。
对于高写入负载,如果所有 Bookie 都已满,只需增加更多的 Bookie,新的消息条目(即新的 Ledger)即可存储到这些新的 Bookie 上。通过这种分段设计,在存储扩展期间 Pulsar 无需从 Bookie 中重新复制旧消息。对于高读取负载,Pulsar 将消息缓存在 Broker 内存中,所以 Bookie 的读负载会显著卸载到 Broker 上,而 Broker 是负载均衡的。
Pulsar 计算层(Broker)和存储层(Bookie)分离的一大优势是 Pulsar Broker 是无状态的,基于动态 Bundle 归属可以实现良好的水平扩展性。当 Broker 过载后,可以轻松地将更多 Broker 加入集群并重新分配 Bundle 归属关系。
Pulsar 通过 Bundle 将主题分组以便于跟踪,并在 Broker 之间动态地分配和平衡 Bundle。如果特定的 Bundle 发生过载,则自动进行拆分,将分配单元维护在合理的流量水平。
Pulsar 将 Broker 全局负载数据(CPU、内存以及网络使用率)以及 Bundle 负载数据(消息输入/输出速率)收集到 Leader Broker,以运行负载均衡算法逻辑:执行 Bundle-Broker 分配、Bundle 拆分和卸载(缩减)。
Bundle-Broker 分配逻辑随机选择负载最少的 Broker,并将客户端重定向到分配的 Broker URL。Broker-Bundle 归属关系会在 Metadata Store 中创建临时锁,如果 Owner 不可用(失去归属权)则会自动释放锁
主题Segment特性
存储服务的分层的架构和以Segment为中心的存储是Pulsar(使用BookKeeper)的两个关键设计理念。 这两个基础为Pulsar提供了许多重要的好处:
无限制的主题分区存储
即时扩展,无需数据迁移
无缝Broker故障恢复
无缝集群扩展
无缝的存储(Bookie)故障恢复
独立的可扩展性
Mafka VS Pulsar
Apache Pulsar和Apache Kafka之间的根本区别在于Apache Kafka是以分区为存储中心,而Apache Pulsar是以Segment为存储中心。
对比优劣
Mafka在Apache Kafka中,分区只能存储在单个节点上并复制到其他节点,其容量受最小节点容量的限制。这意味着容量扩展需要对分区重新平衡,这反过来又需要重新复制整个分区,以平衡新添加的代理的数据和流量。
Pulsar在Apache Pulsar中,同样是以分区为逻辑单元,但是以Segment为物理存储单元。分区随着时间的推移会进行分段,并在整个集群中均衡分布,旨在有效地迅速地扩展
Pulsar是以Segment为中心的,因此在扩展容量时不需要数据重新平衡和拷贝,旧数据不会被重新复制
参考
https://pulsar.apache.org/admin-rest-api/#tag/persistent-topic
https://pulsar.apache.org/docs/2.6.0/admin-api-partitioned-topics
网友评论