分区扩缩容方法和系统技术方案

技术编号:34639779 阅读:18 留言:0更新日期:2022-08-24 15:14
本申请提供一种分区扩缩容方法和系统,在触发节点缩容和分区缩容时,可以将各个发送端发送的数据发送至分区缩容后保留的分区下的各个节点中。而各个消费端从分区缩容前的所有分区下的各个节点中进行数据接收,如此,在分区缩容操作对应的需要删除的分区满足删除条件时,再将需要删除的节点以及分区进行删除,完成缩容。本方案通过在缩容时,控制发送端仅将数据发送至缩容后保留的分区,而消费端仍然从所有分区进行数据接收,如此,需要删除的分区下的数据不断被消费而无新增,等待需要删除的分区下的数据满足一定条件时,则可以完成缩容。该种方式支持分区的缩容,并且可以尽可能地减少分区数据的迁移,减少网络传输消耗。减少网络传输消耗。减少网络传输消耗。

【技术实现步骤摘要】
分区扩缩容方法和系统


[0001]本专利技术涉及大数据存储
,具体而言,涉及一种分区扩缩容方法和系统。

技术介绍

[0002]开源中间件Kafka,作为许多公司的消息中间件,可以解耦各个系统。发送端发送消息数据,消费端消费消息数据,一个消息从发送到消费有一定的时间差,具有削峰左右。业务都有高峰和低谷阶段,消息的吞吐量可能是几倍甚至几百倍的差距。比如在白天人流量大、业务运行大,在晚上人流量小、业务运行少。Kafka的消息吞吐量可以随着节点和分区的增加而横向扩展,提高系统的性能。
[0003]如果峰值时段需要将Kafka的节点和分区的进行扩容,可以增加分区的分区数,并且把增加的分区分布在扩容的节点上面。
[0004]但是如果低谷时段需要将Kafka的节点与分区进行缩容,根据Kafka的分区设计,分区数量只能增大,不能减少,因为发送端会不断地发送新数据到所有分区。同时所有分区中都存在消息数据,消费端需要从所有分区中消费。并且,在节点进行缩容时,被缩容的节点需要将该节点上的数据复制迁移到其他节点上,在迁移完成之后才能进行节点的缩容,中间有极大的网络开销。

技术实现思路

[0005]本专利技术的目的包括,例如,提供了一种分区扩缩容方法和系统,其能够支持分区缩容,且减少分区数据点的迁移、减少网络传输消耗。
[0006]本专利技术的实施例可以这样实现:
[0007]第一方面,本专利技术提供一种分区扩缩容方法,应用于分区扩缩容系统,所述系统包括Kafka集群、多个消费端和发送端,所述Kafka集群包括多个节点,多个节点被划分为多个分区,所述方法包括:
[0008]在触发进行节点缩容和分区缩容时,将各所述发送端发送的数据发送至分区缩容后保留的分区下的各个节点中;
[0009]各所述消费端从分区缩容前的所有分区下的各个节点中进行数据接收;
[0010]在分区缩容操作对应的需要删除的分区满足删除条件时,将需要删除的节点以及分区进行删除,完成缩容。
[0011]在可选的实施方式中,所述分区扩缩容系统还包括zookeeper集群,所述zookeeper集群中记录有分区信息,各所述发送端发送数据的分区信息和各所述消费端接收数据的分区信息记录在不同目录下,所述在触发进行节点缩容和分区缩容的步骤之后,所述方法还包括:
[0012]将各所述发送端对应的目录下的分区信息更新为缩容后的分区信息,将各所述消费端对应的目录下的分区信息保持为原本的分区信息;
[0013]所述将需要删除的节点以及分区进行删除,完成缩容的步骤之后,所述方法还包
括:
[0014]将各所述消费端对应的目录中的分区信息更新为缩容后的分区信息。
[0015]在可选的实施方式中,所述在分区缩容操作对应的需要删除的分区满足删除条件时,将需要删除的节点以及分区进行删除的步骤,包括:
[0016]判断分区缩容操作对应的需要删除的分区中的数据是否需要回溯,若需要回溯,则根据缩容时限要求对需要删除的分区中的数据进行处理后,将需要删除的节点以及分区进行删除;
[0017]若不需要回溯,则在需要删除的分区中的数据满足失效条件时,将需要删除的节点以及分区进行删除。
[0018]在可选的实施方式中,所述根据缩容时限要求对需要删除的分区中的数据进行处理后,并将需要删除的节点以及分区进行删除的步骤,包括:
[0019]若缩容时限要求表明需要马上进行缩容操作,则将需要删除的分区中的全部数据迁移至保留的节点上,并将需要删除的节点删除,等待到达设置的留存期限时,将需要删除的分区删除;
[0020]若缩容时限要求表明不需要马上进行缩容操作,则等待到达设置的留存期限时,将需要删除的分区进行删除,并将需要删除的节点删除。
[0021]在可选的实施方式中,所述若不需要回溯,则在需要删除的分区中的数据满足失效条件时,将需要删除的节点以及分区进行删除的步骤,包括:
[0022]若不需要回溯,判断需要删除的分区中的数据是否全部失效,若全部失效,则将需要删除的节点以及分区进行删除;
[0023]若需要删除的分区中的数据未全部失效,则根据缩容时限要求对其中未失效的数据进行处理,并将需要删除的节点以及分区进行删除。
[0024]在可选的实施方式中,所述根据缩容时限要求对其中未失效的数据进行处理,并将需要删除的节点以及分区进行删除的步骤,包括:
[0025]在缩容时限要求表明需要马上进行缩容操作时,则将分区中未失效的数据迁移至保留的节点上,并将需要删除的节点删除,等待所述分区上的数据全部被消费或到达设置的留存期限时,将需要删除的分区删除;
[0026]在缩容时限要求表明不需要马上进行缩容操作,则等待分区中最后一条数据的存入时间到达设置的留存期限时,判定该分区中的所有数据失效,并将需要删除的分区和节点删除。
[0027]在可选的实施方式中,所述判断需要删除的分区中的数据是否全部失效的步骤,包括:
[0028]针对需要删除的各个分区,获取分区中的最后一条数据的记录偏移量;
[0029]获取各所述消费端在关于消费所述分区中的数据的消费偏移量,所述消费偏移量表征所述消费端已消费所述分区中的数据的最大记录偏移量;
[0030]在各所述消费偏移量均等于所述记录偏移量时,判定所述分区中的数据全部失效。
[0031]在可选的实施方式中,所述方法还包括:
[0032]在触发进行节点扩容和分区扩容时,将需要扩容的分区分布在需要扩容的节点
下;
[0033]将各所述发送端发送的数据发送至分区扩容后的所有分区下的各个节点中;
[0034]各所述消费端从分区扩容后的所有分区下的各个节点中进行数据接收。
[0035]第二方面,本专利技术提供一种分区扩缩容系统,所述系统包括Kafka集群、多个消费端和发送端,所述Kafka集群包括多个节点,多个节点被划分为多个分区;
[0036]在触发进行节点缩容和分区缩容时,各所述发送端用于将数据发送至分区缩容后保留的分区下的各个节点中;
[0037]各所述消费端用于从分区缩容前的所有分区下的各个节点中进行数据接收;
[0038]在分区缩容操作对应的需要删除的分区满足删除条件时,所述多个节点中的管理节点用于将需要删除的节点以及分区进行删除,完成缩容。
[0039]在可选的实施方式中,所述分区扩缩容系统还包括zookeeper集群,所述zookeeper集群中记录有分区信息,各所述发送端发送数据的分区信息和各所述消费端接收数据的分区信息记录在不同目录下;
[0040]所述zookeeper集群用于在触发进行节点缩容和分区缩容时,将各所述发送端对应的目录下的分区信息更新为缩容后的分区信息,将各所述消费端对应的目录下的分区信息保持为原本的分区信息;
[0041]所述zookeeper集群还用于在完成缩容后,将各所述消费端对应的目录中的分区信息更新为缩容本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分区扩缩容方法,其特征在于,应用于分区扩缩容系统,所述系统包括Kafka集群、多个消费端和发送端,所述Kafka集群包括多个节点,多个节点被划分为多个分区,所述方法包括:在触发进行节点缩容和分区缩容时,将各所述发送端发送的数据发送至分区缩容后保留的分区下的各个节点中;各所述消费端从分区缩容前的所有分区下的各个节点中进行数据接收;在分区缩容操作对应的需要删除的分区满足删除条件时,将需要删除的节点以及分区进行删除,完成缩容。2.根据权利要求1所述的分区扩缩容方法,其特征在于,所述分区扩缩容系统还包括zookeeper集群,所述zookeeper集群中记录有分区信息,各所述发送端发送数据的分区信息和各所述消费端接收数据的分区信息记录在不同目录下,所述在触发进行节点缩容和分区缩容的步骤之后,所述方法还包括:将各所述发送端对应的目录下的分区信息更新为缩容后的分区信息,将各所述消费端对应的目录下的分区信息保持为原本的分区信息;所述将需要删除的节点以及分区进行删除,完成缩容的步骤之后,所述方法还包括:将各所述消费端对应的目录中的分区信息更新为缩容后的分区信息。3.根据权利要求1所述的分区扩缩容方法,其特征在于,所述在分区缩容操作对应的需要删除的分区满足删除条件时,将需要删除的节点以及分区进行删除的步骤,包括:判断分区缩容操作对应的需要删除的分区中的数据是否需要回溯,若需要回溯,则根据缩容时限要求对需要删除的分区中的数据进行处理后,将需要删除的节点以及分区进行删除;若不需要回溯,则在需要删除的分区中的数据满足失效条件时,将需要删除的节点以及分区进行删除。4.根据权利要求3所述的分区扩缩容方法,其特征在于,所述根据缩容时限要求对需要删除的分区中的数据进行处理后,并将需要删除的节点以及分区进行删除的步骤,包括:若缩容时限要求表明需要马上进行缩容操作,则将需要删除的分区中的全部数据迁移至保留的节点上,并将需要删除的节点删除,等待到达设置的留存期限时,将需要删除的分区删除;若缩容时限要求表明不需要马上进行缩容操作,则等待到达设置的留存期限时,将需要删除的分区进行删除,并将需要删除的节点删除。5.根据权利要求3所述的分区扩缩容方法,其特征在于,所述若不需要回溯,则在需要删除的分区中的数据满足失效条件时,将需要删除的节点以及分区进行删除的步骤,包括:若不需要回溯,判断需要删除的分区中的数据是否全部失效,若全部失效,则将需要删除的节点以及分区进行删除;若需要删除的分区中的数据未全部失效,则根据缩容时限要求对其中未失效的数据进行处理,并将需要...

【专利技术属性】
技术研发人员:谭宗喜
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1