在很多的数据处理过程中,即使同样的数据类型,在不同应用场景下,也会具有不一样的数据含义。相应的,它们的数据分区也需要区别对待和另外处理。这就是我们设计和制定自定义分区规则的原因。

自定义分区以中间件的形式提供给开发者,在Laxcus语义定义中,它被称为“码位计算器”。如图9.9.1所示,码位计算器的核心是“CodeScaler”接口,由开发者去编码实现。其中的“seek”方法,将根据传入的对象,计算出一个数值。通过这个数值,系统将确定一个数据对象在分区集合中的下标位置,并且依此完成后续数据对象的分组、派发等一系列工作。

与分布任务组件一样,码位计算器也需要一个配置文件,这个配置文件标明码位计算器在运行时需要的全部参数,在经过编译、打包和发布后,将部署到集群的相关节点上运行。与分布任务组件不同的是,每个码位计算器的命名只需要保证在本次配置中唯一即可。这个特点使它比分布任务组件简单很多。