繁体   English   中英

什么是Apache Helix中的“分区”

What is a 'Partition' in Apache Helix

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在学习Apache Helix。 我碰到了关键字“分区”。
根据此处提到的定义http://helix.apache.org/Concepts.html ,每个(主任务的)子任务在Helix中都称为分区。
当我浏览食谱-分布式锁管理器时,分区不过是资源的实例。 (增加numOfPartitions,增加锁的数量)。

final int numPartitions = 12;
admin.addResource(clusterName, lockGroupName, numPartitions, "OnlineOffline",
          RebalanceMode.FULL_AUTO.toString());

有人可以用简单的例子解释一下,Apache Helix中的分区到底是什么吗?

1 个回复

我认为您是对的,分区本质上是资源的实例。 与其他分布式系统一样,使用分区来实现并行性。 只有一个实例的资源只能在一台机器上运行。 分区只是提供了通过对资源进行分区来在多个计算机之间拆分单个资源所必需的构造。

在大部分分布式系统中都可以找到这种模式。 不过,区别在于,例如,分布式数据库本质上将分区明确定义为可以容纳在单个节点上的一些较大数据集的子集,而Helix更具通用性,因为分区没有明确的含义或用例,但是很多潜在含义和潜在用例。

我非常熟悉的系统中的这些用例之一就是Apache Kafka的主题分区。 在Kafka中,每个主题-本质上是一个分布式日志-分为多个分区。 尽管主题数据可以分布在群集中的许多节点上,但是每个分区都被限制在单个节点上的单个日志中。 Kafka通过向新节点添加新分区来提供可伸缩性。 当产生针对Kafka主题的消息时,在内部将它们散列到某个特定节点上的某个特定分区。 从主题消费消息时,使用者从主题消费时在分区之间切换,从而在节点之间切换。

这种模式通常适用于许多可伸缩性问题,几乎可以在任何HA分布式数据库(例如DynamoDB,Hazelcast),地图/缩减(例如Hadoop,Spark)以及其他数据或任务驱动的系统中找到。

LinkedIn上有关Helix的博客文章实际上还提供了许多有用的示例,说明资源与分区之间的关系。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题
 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM