一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

针对kafka集群的磁盘保护方法及相关设备与流程

2022-04-24 23:49:16 来源:中国专利 TAG:
针对kafka集群的磁盘保护方法及相关设备【
技术领域
:】1.本技术实施例涉及计算机
技术领域
:,尤其涉及一种针对kafka集群的磁盘保护方法及相关设备。
背景技术
::2.kafka是由apache软件基金会开发的一个开源流处理平台,由scala和java编写。kafka是一种高吞吐量的发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。3.kafka的架构包括以下组件:4.话题(topic)是特定类型的消息流。消息是字节的有效负载(playload),话题是消息的分类名或者种子(feed)名。5.生产者(producer)是能够发布消息到话题的任何对象。6.代理(broker)或者kafla集群是用于保存已发布的消息的一组服务器。7.消费者可以订阅一个或者多个话题,从代理(broker)中拉取数据,从而消费这些已发布的消息。8.kafka现有的删除策略可以分为:基于时间的删除策略和基于文件大小的删除策略,这两种策略都无法应对短时间内出现突发流量的状况,导致磁盘空间写满,造成kafka服务不可用。技术实现要素:9.本技术实施例提供了一种针对kafka集群的磁盘保护方法及相关设备,以保证了磁盘的可用容量,从而使得kafka系统在出现突发流量时,磁盘空间不会出现过载问题,保证了kafka服务的高可用。10.第一方面,本技术实施例提供一种针对kafka集群的磁盘保护方法,包括:轮询kafka集群中所有存储服务器的磁盘容量;当任一存储服务器的磁盘容量达到保护阈值时,获取分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区;对每一个存储服务器,查询所述存储服务器的数据目录,按照占用空间由大到小的顺序找出第一预设数量的段文件;对每一个段文件,获取所述段文件所属的主题及分区,依据所述分布信息判断所述段文件所属的分区是否为主分区;当所述段文件所属的分区为主分区,按照预设比例清理所述段文件所属的分区下的段文件。11.上述磁盘保护方法中,监控存储服务器的磁盘空间的使用情况,当磁盘的占用空间的大小超过预设阈值时,对其进行清理,保证了磁盘的可用容量,从而使得kafka系统在出现突发流量时,磁盘空间不会出现过载问题,保证了kafka服务的高可用。上述方法保证了在磁盘空间受限的场景下,磁盘空间不被突发流量占满,实现kafka集群服务自我保护的一种机制,从而提高kafka集群的可用性。12.其中一种可能的实现方式中,按照预设比例清理所述段文件所属的分区下的段文件,包括:查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。13.其中一种可能的实现方式中,所述在所述可清理的段文件中按照预设比例选择待清理的段文件,包括:将所述可清理的段文件按照时间顺序进行排序;在所述排序中按照由远到近的顺序选择预设比例的段文件,作为待清理的文件单元。14.其中一种可能的实现方式中,所述清理所述待清理的段文件,包括:对每一个待清理的段文件,获取所述待清理的段文件的文件名,依据文件名计算数据起始偏移量;在所述段文件所属的分区中依据所述起始偏移量清理所述待清理的段文件。15.其中一种可能的实现方式中,所述方法还包括:如果查找所述段文件所属的分区下的可清理的段文件失败,则调整段文件参数,以调整段文件大小;重新查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。16.第二方面,本技术实施例提供一种针对kafka集群的磁盘保护装置,设置在终端设备中,其特征在于,所述磁盘保护装置包括:监控模块,用于轮询kafka集群中所有存储服务器的磁盘容量;获取模块,用于当任一存储服务器的磁盘容量达到保护阈值时,获取分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区;查询模块,用于对每一个存储服务器,查询所述存储服务器的数据目录,按照占用空间由大到小的顺序找出第一预设数量的段文件;判断模块,用于对每一个段文件,获取所述段文件所属的主题及分区,依据所述分布信息判断所述段文件所属的分区是否为主分区;第一清理模块,用于当所述段文件所属的分区为主分区,按照预设比例清理所述段文件所属的分区下的段文件。17.其中一种可能的实现方式中,所述第一清理模块,包括:查找模块,用于查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;第二清理模块,用于在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。18.其中一种可能的实现方式中,所述第二清理模块,包括:排序模块,用于将所述可清理的段文件按照时间顺序进行排序;选择模块,用于在所述排序中按照由远到近的顺序选择预设比例的段文件,作为待清理的文件单元。19.其中一种可能的实现方式中,所述第二清理模块,包括:计算模块,用于对每一个待清理的段文件,获取所述待清理的段文件的文件名,依据文件名计算数据起始偏移量;第三清理模块,用于在所述段文件所属的分区中依据所述起始偏移量清理所述待清理的段文件。20.其中一种可能的实现方式中,所述装置还包括:调整模块,用于如果查找所述段文件所属的分区下的可清理的段文件失败,则调整段文件参数,以调整段文件大小;第二查找模块,用于重新查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;第四清理模块,用于在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。21.第三方面,本技术实施例提供一种针对kafka集群的磁盘保护方法,所述方法应用于kafka集群的控制台中,所述kafka集群还包括多个存储服务器和协调服务器,所述方法包括:轮询kafka集群中所有存储服务器的磁盘容量;当任一存储服务器的磁盘容量达到保护阈值时,获取所述协调服务器上存储的分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区;向每一个存储服务器发送清理指令,以使每一个存储服务器进行文件清理,所述清理指令中包括所述分区分布信息22.第四方面,本技术实施例提供一种一种针对kafka集群的磁盘保护方法,所述方法应用于kafka集群的存储服务器中,所述kafka集群还包括控制台,所述方法包括:接收所述控制台发出的清理指令,所述清理指令中包括所述分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区;查询的数据目录,按照占用空间由大到小的顺序找出第一预设数量的段文件;对每一个段文件,获取所述段文件所属的主题及分区,依据所述分布信息判断所述段文件所属的分区是否为主分区;当所述段文件所属的分区为主分区,按照预设比例清理所述段文件所属的分区下的段文件。23.其中一种可能的实现方式中,按照预设比例清理所述段文件所属的分区下的段文件,包括:查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。24.其中一种可能的实现方式中,所述在所述可清理的段文件中按照预设比例选择待清理的段文件,包括:将所述可清理的段文件按照时间顺序进行排序;在所述排序中按照由远到近的顺序选择预设比例的段文件,作为待清理的文件单元。25.其中一种可能的实现方式中,所述清理所述待清理的段文件,包括:对每一个待清理的段文件,获取所述待清理的段文件的文件名,依据文件名计算数据起始偏移量;在所述段文件所属的分区中依据所述起始偏移量清理所述待清理的段文件。26.其中一种可能的实现方式中,所述方法还包括:如果查找所述段文件所属的分区下的可清理的段文件失败,则调整段文件参数,以调整段文件大小;重新查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。27.第五方面,本技术实施例提供一种终端设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。28.第六方面,本技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。29.应当理解的是,本技术实施例的第二、第五、第六方面与本技术实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。【附图说明】30.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。31.图1为本技术第一实施例提供的针对kafka集群的磁盘保护方法的流程图;32.图2为本技术第一实施例提供的另一种针对kafka集群的磁盘保护方法的流程图;33.图3为本技术第一实施例提供的再一种针对kafka集群的磁盘保护方法的流程图;34.图4为本技术第二实施例提供的一种针对kafka集群的磁盘保护装置的结构示意图;35.图5为本说明书第二实施例提供的另一种针对kafka集群的磁盘保护方装置的结构示意图;36.图6为本说明书提供的kafka集群的结构示意图;37.图7为本说明书第三实施例提供的针对kafka集群的磁盘保护方法的流程图;38.图8为本说明书第四实施例提供的针对kafka集群的磁盘保护方法的流程图。【具体实施方式】39.为了更好的理解本说明书的技术方案,下面结合附图对本技术实施例进行详细描述。40.应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。41.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。42.现有技术中,kafka提供了两种删除策略:基于时间的删除策略和基于文件大小的删除策略,两种策略可通过以下系统参数进行设置:43.log.retention.hours——设置数据保持时间;44.log.retention.bytes——设置文件最大大小;45.但这两种策略在短时间内出现突发流量时,都存在磁盘空间被占满的风险,例如,假设磁盘空间为100g,设置数据保留时间为24小时,但是突发24小时内数据量超过100g,就会导致磁盘空间写满。另外,对于基于文件大小的策略,其实都是周期查询的,也就是说,kafka会周期查询保存的文件,查找其中是否有超过最大限制的文件,如果有将其删除。当两次查询期间出现大量的突发流量时,该种策略无法对文件进行删除,会致磁盘空间写满。46.当磁盘空间满了,kafka服务就会出现宕机,导致服务不可用。47.基于以上问题,本技术实施例提供一种针对kafka集群的磁盘保护方法,监控存储服务器的磁盘空间的使用情况,当磁盘的占用空间的大小超过预设阈值时,对其进行清理,保证了磁盘的可用容量,从而使得kafka系统在出现突发流量时,磁盘空间不会出现过载问题,保证了kafka服务的高可用。上述方法保证了在磁盘空间受限的场景下,磁盘空间不被突发流量占满,实现kafka集群服务自我保护的一种机制,从而提高kafka集群的可用性。48.图1为本技术一个实施例提供的针对kafka集群的磁盘保护方法的流程图,如图1所示,上述磁盘保护方法可以包括:49.步骤101,轮询kafka集群中所有存储服务器的磁盘容量。50.定时发出询问,依序询问每一个存储服务器自身的磁盘容量,或者,向所有的存储服务器同时发出询问,询问其的磁盘使用情况。51.步骤102,当任一存储服务器的磁盘容量达到保护阈值时,获取分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区。52.当询问的结果显示有任何一个存储服务器的磁盘容量达到预设的保护阈值时,获取kafka的分布信息,分布信息中记录了kafka中每个用于存储消息的代理(broker)上所设置的主题及主题下的分区,为便于表述本实施例将该类代理(broker)称为存储服务器。53.kafka中,话题(topic)可以设置一个或者多个分区(partition)。分区保存在代理(broker)上,kafka中为来应对突发因素如服务器宕机等会丢失数据分区的情况,为每个partition可以设置多个副本(replica),随机选取一个副本(replica)作为leaderpartition,本实施例称为主分区,而其余的副本(replica)作为followerpartition,本实施例称为从分区。生产者在发送数据的时候,是直接发送到主分区(leaderpartition)里面,然后从分区(followerpartition)自行会去主分区(leaderpartition)同步数据,消费者消费数据的时候,也是从主分区(leaderpartition)处消费数据。54.也就是说,每个存储服务器上保存有一个或多个主题的一个或者多个分区,所保存的分区可能是主分区,也可能是从分区。本技术中将记录有每个存储服务器上的设置的主题、设置的主题下的分区、分区的主从属性的数据称为分布信息。55.步骤103,对每一个存储服务器,查询所述存储服务器的数据目录,按照占用空间由大到小的顺序找出第一预设数量的段文件。56.对于每一个存储服务器,扫描其上存储的文件,进行删除,具体的:57.查询存储服务器的数据目录,数据目录是指存储服务器上存储的所有数据的元数据,其可以简单理解为所保存的数据的目录。58.通过查询数据目录,能够得知存储服务器上存储状况:保存了哪些文件、每一个文件占用空间的大小、每一个文件的保存路径等。59.分区(partition)被分解为多个segment(段文件)进行存储,segment(段文件)是kafka的最小存储单元。segment(段文件)由两部分组成,分别是索引文件(indexfile)和数据文件(datafile),数据文件则存储了生产者发布的消息。60.依据数据目录,按照占用空间的大小,找出第一预设数量的段文件。示例的,将所有段文件按照占用空间由大到小的顺序进行排序,从队列起始位置选取第一预设数量的段文件。61.步骤104,对每一个段文件,获取所述段文件所属的主题及分区,依据所述分布信息判断所述段文件所属的分区是否为主分区。62.步骤105,当所述段文件所属的分区为主分区,按照预设比例清理所述段文件所属的分区下的段文件。63.对于一个存储服务器中所找出的段文件,对每一个段文件,执行以下方法:64.获取该段文件所属的主题及分区,依据所述述分布信息判断该段文件所属的分区是否为主分区。65.当该段文件所属的分区为主分区时,按照预设比例清理该分区下的所有段文件。66.示例的,假设kafka集群的中目前状态为有主题:firsttopic和secondtopic,firsttopic设有下属的两个分区如01和02,secondtopic设有下属的两个分区如01和02,假设分布信息为:存储服务器a上有firsttopic的01分区的主分区、firsttopic的02分区的从分区、secondtopic的02分区的主分区、secondtopic的01分区的从分区,存储服务器b上有firsttopic的02分区的主分区、firsttopic的01secondtopic-01的主分区,和secondtopic-02的从分区。67.对存储服务器a、存储服务器b进行文件清理,对于存储服务器a来说,查询该存储服务器的数据目录,按照段文件占用空间由大到小的顺序,从存储服务器a保存的文件中找出第一预设数量如10个的段文件。68.对于这找出的10个段文件中的每一个文件执行以下方法:69.查询段文件所属的主题及分区,示例的,可以直通过数据目录查询该段文件的存储路径,由于kafka中是用主题名加分区编号来存储分区的如firsttopic的01分区可能被命名为firsttopic-01进行存储的。因此,对于一个段文件如00001,查询其的存储路径如file/firsttopic-01,其的上一级路径就是其所属的分区及该分区所属的主题,即firsttopic-01。70.当查询得到段文件所属主题及分区后,依据分布信息判断这一分区是否为主分区,示例的,以上分布信息中表明存储服务器a上有firsttopic的01分区为主分区,且段文件又属于firsttopic的01分区,则证明该段文件所属分区为主分区。71.当判断结果表示该分区为主分区时,按照预设比例该分区下的所有文件进行清除,例如,将该分区下的所有文件的20%清除。设置清理比例是为了保证磁盘不会被占满的同时能够最大限度的保留历史数据。72.上述针对kafka集群的磁盘保护方法中,监控存储服务器的磁盘空间的使用情况,当磁盘的占用空间的大小超过预设阈值时,对其进行清理,保证了磁盘的可用容量,从而使得kafka系统在出现突发流量时,磁盘空间不会出现过载问题,保证了kafka服务的高可用。上述方法保证了在磁盘空间受限的场景下,磁盘空间不被突发流量占满,实现kafka集群服务自我保护的一种机制,从而提高kafka集群的可用性。73.图2为本技术另一个实施例提供的针对kafka集群的磁盘保护方法的流程图,如图2所示,本技术图1所示实施例中,步骤105,还包括:74.步骤201,查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件。75.找出段文件所属的分区下所有可清理的段文件,可清理的段文件中不包含快照文件。76.以上说明了kafka里一个段文件(segment)就是最小存储单元,其中,正在写入的段文件(segment)包括四个文件名相同后缀不同的文件(*.index,*.log,*.timeindex,*.snapshot),而一个历史的segment有两个同名文件(*.index,*.log)没有*.snapshot文件。因此,当段文件(segment)中包括快照文件(*.snapshot)时是不可清理的。77.步骤202,在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。78.选择出分区下的可清理的文件后,在所有可清理的文件中,选择预设比例如20%的文件作为待清理文件,清除掉选择出的待清理文件。79.进一步的,所述步骤202,还包括:80.步骤203,将所述可清理的段文件按照时间顺序进行排序。81.选择出分区下的可清理的文件后,将所有可清理的文件按照时间顺序进行排序。82.步骤204,在所述排序中按照由远到近的顺序选择预设比例的段文件,作为待清理的文件单元。83.将所有可清理的文件按照时间进行排序后,按照由远到近的顺序选择预设比例的段文件,将选择出的段文件作为待清理文件,以优先删除掉历史的段文件,保留新的段文件。84.进一步的,所述步骤202还包括:85.步骤205,对每一个待清理的段文件,获取所述待清理的段文件的文件名,依据文件名计算数据起始偏移量。86.对于一个待清理的段文件,清理方法可以是:87.获取该段文件的文件名,kafka规定一个分区中的段文件命名规则为:第一个段文件从0开始,第二个及以后的段文件的文件名为上一个段文件中储存的段文件的offset(偏移量),就是说文件名表示了一个段文件在这个分区中的逻辑存储位置。获得该文件的文件名后,将该文件名作为在该分区的起始偏移量。88.步骤206,在所述段文件所属的分区中依据所述起始偏移量清理所述待清理的段文件。89.获取起始偏移量后,获取该段文件的下一个段文件的文件名,或者获取该段文件中所保存的最后一个消息的文件名,所获取的就是该段文件的终止偏移位置,在该分区中从起始偏移量开始一直删除到终止偏移位置,将该段文件从分区中删除。90.图3为本技术再一个实施例提供的针对kafka集群的磁盘保护方法的流程图,如图3所示,本技术图2所示实施例中,所述方法还包括:91.步骤301,如果查找所述段文件所属的分区下的可清理的段文件失败,则调整段文件参数,以调整段文件大小。92.当kafka集群中分区数较多,且数据较为均匀时,可能存在每个主题占用的空间接近,且没有可清理文件,也就是说,所有段文件(segment)中都存在快照文件(.snapshot为后缀的文件)。93.可以调整kafka的段文件(segment)的大小来解决这一问题,示例的,调整log.segment.bytes参数将文件分段大小适当的调小一点,已确保存在可清理的segment,通过调小segment空间大小,可以使得segment的数量增加,历史segment增加,从而使得可清理数据增加。如,原来段文件为1g可调整为500m,segment数量会是之前的2倍,增加了1倍的可清理文件数量。94.步骤302,重新查找所述段文件所属的分区下的可清理的段文件下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件。95.调整段文件的分段大小后,重新找出段文件所属的分区下所有可清理的段文件,可清理的段文件中不包含快照文件。96.步骤303,在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。97.选择出分区下的可清理的文件后,在所有可清理的文件中,选择预设比例如20%的文件作为待清理文件,清除掉选择出的待清理文件。98.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。99.图4为本发明一个实施例提供的针对kafka集群的磁盘保护装置的结构示意图,上述磁盘保护装置设置在终端设备中,如图4所示,上述磁盘保护装置可以包括:监控模块41、获取模块42、查询模块43、判断模块44和第一清理模块45;100.其中,监控模块41,用于轮询kafka集群中所有存储服务器的磁盘容量;101.获取模块42,用于当任一存储服务器的磁盘容量达到保护阈值时,获取分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区;102.查询模块43,用于对每一个存储服务器,查询所述存储服务器的数据目录,按照占用空间由大到小的顺序找出第一预设数量的段文件;103.判断模块44,用于对每一个段文件,获取所述段文件所属的主题及分区,依据所述分布信息判断所述段文件所属的分区是否为主分区;104.第一清理模块45,用于当所述段文件所属的分区为主分区,按照预设比例清理所述段文件所属的分区下的段文件。105.图4所示实施例提供的针对kafka集群的磁盘保护装置可用于执行本说明书图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。106.图5为本说明书另一个实施例提供的针对kafka集群的磁盘保护装置的结构示意图,本实施例中,第一清理模块45,包括查找模块51和第二清理模块52,107.其中,查找模块51,用于查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;108.第二清理模块52,用于在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。109.进一步地,上述所述第二清理模块52,包括:排序模块53和选择模块54,110.其中,排序模块53,用于将所述可清理的段文件按照时间顺序进行排序;111.选择模块54,用于在所述排序中按照由远到近的顺序选择预设比例的段文件,作为待清理的文件单元。112.进一步的,所述第二清理模块,还包括:113.计算模块55,用于对每一个待清理的段文件,获取所述待清理的段文件的文件名,依据文件名计算数据起始偏移量;114.第三清理模块55,用于在所述段文件所属的分区中依据所述起始偏移量清理所述待清理的段文件。115.进一步的,所述装置还包括:116.调整模块57,用于如果查找所述段文件所属的分区下的可清理的段文件失败,则调整段文件参数,以调整段文件大小;117.第二查找模块58,用于重新查找所述段文件所属的分区下的可清理的段文件,所述可清理的段文件为不存在快照文件的段文件;118.第四清理模块59,用于在所述可清理的段文件中按照预设比例选择待清理的段文件,清理所述待清理的段文件。119.图5所示实施例提供的针对kafka集群的磁盘保护装置可用于执行本技术图1~图3所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。120.图6为本说明书一个实施例提供的kafka集群600的示意图,kafka集群600包括控制台610、存储服务器620、存储服务器630、存储服务器640、协调服务器650,121.存储服务器620、存储服务器630、存储服务器640,三个存储服务器结构相同,存储服务器用于存储kafka集群中发布的消息的服务器,及供消费设备拉取所存储的消息。存储服务器中可以包括node(磁盘检测服务)及磁盘。磁盘是具体用于存储消息的存储介质,node用于对所述磁盘进行检测。122.控制台610是node的管理控制台,用于控制各存储服务器上的node(磁盘检测服务)。123.协调服务器650是安装有分布式应用协调服务如zookeeper、nacos、eureka等的服务器,用于管理各存储服务器。kafka是一种主从式的架构,主节点为一个选中的服务器,称为controller,本实施例称为协调服务器,除主节点外的其余服务器为从节点。协调服务器上运行有分布式应用协调服务如zookeeper、nacos、eureka等,分布式应用协调服务用于设置kafka中的主题及主题下的分区,controller需要和分布式应用协调服务进行配合管理整个kafka集群。124.图7为本技术一个实施例提供的针对kafka集群的磁盘保护方法的流程图,所述方法应用于图6所示的kafka集群中的控制台610,所述方法包括:125.步骤701,轮询kafka集群中所有存储服务器的磁盘容量。126.步骤702,当任一存储服务器的磁盘容量达到保护阈值时,获取所述协调服务器上存储的分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区。127.步骤703,向所述每一个存储服务器发送清理指令,以使存储服务器清理文件,所述清理指令中包括所述分区分布信息。128.图8为本技术一个实施例提供的针对kafka集群的磁盘保护方法的流程图,所述方法应用于kafka集群的存储服务器中,所述kafka集群还包括控制台,所述方法包括:129.步骤801,接收所述控制台发出的清理指令,所述清理指令中包括所述分区分布信息,所述分区分布信息中包含每一个存储服务器上所设置的主题及每一个主题下属的主分区;130.步骤802,查询的数据目录,按照占用空间由大到小的顺序找出第一预设数量的段文件;131.步骤803,对每一个段文件,获取所述段文件所属的主题及分区,依据所述分布信memory,eprom)或闪存、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。150.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。151.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。152.可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。153.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。154.在本发明实施例的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。155.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。156.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属
技术领域
:的技术人员所理解。157.取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。158.需要说明的是,本技术实施例中所涉及的终端可以包括但不限于个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、手机、mp3播放器、mp4播放器等。159.在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。160.另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。161.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。162.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献