一种私有云中Kafka部署方法、装置及电子设备与流程

文档序号:32654302发布日期:2022-12-23 20:54阅读:24来源:国知局
一种私有云中Kafka部署方法、装置及电子设备与流程
一种私有云中kafka部署方法、装置及电子设备
技术领域
1.本发明属于计算机技术领域,具体涉及一种私有云中kafka部署方法、装置及电子设备。


背景技术:

2.在工业企业中,为了方便对企业中设备的管理,通常会将设备接入到工业互联网平台中,而将设备接入到工业互联网平台中通常有两种方案,一是将设备直接接入到成熟的公有云平台中,另一种是为设备搭建一套私有化工业互联网平台也即私有云,公有云因其面对百万、千万级的设备量,其数据量是庞大的,因此各服务、中间件以及数据库都会采用多节点、集群化部署,以实现高可用,保证服务稳定运行以及数据的完整性,其中,最重要的是设备连接到平台后,平台会将设备的上行消息生产到kafka中间件中,kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理设备在平台中的所有动作流数据,在生产消息的过程中可能会造成kafka的宕机等异常情况,从而导致数据丢失,因此公有云平台会搭建kafka集群来保证kafka的高可用。
3.而在私有化工业互联网平台中,其本身设备接入量和数据量都较低,但企业要保证数据不丢失,也需要额外消耗更多的硬件资源搭建kafka集群环境,增加了运维工作,成本较高,而部署单机版kafka,又无法保障数据不丢失,造成数据不完成的后果。
4.因此,如何在降低私有化互联网平台的成本和资源的前提下,保证数据不丢失,是本领域技术人员有待解决的技术问题。


技术实现要素:

5.本发明的目的是为了解决现有技术在降低私有化互联网平台的成本和资源的情况下,数据会产生丢失的技术问题。
6.为实现上述技术目的,一方面,本发明提供了一种私有云中kafka部署方法,该方法包括:
7.通过预设回调接口对生产消息失败的第一数据进行重新生产,所述预设回调接口与kafka连接;
8.当重新生产的次数超过预设次数阈值且消息生产失败时,将对应的第一数据保存至第二存储器中,并在预设时间周期到达时根据所述第二存储器中的第一数据重新生产消息,同时将生产成功的消息保存至kafka中。
9.优选地,通过预设回调接口对生产消息失败的第一数据进行重新生产,具体为:
10.将所述第一数据保存至第一存储器中;
11.从所述第一存储器中调取所述第一数据并重新生产消息。
12.优选地,所述将所述第一数据保存至第一存储器中,具体包括:
13.在所述第一存储器中根据预设时间间隔生成队列;
14.将位于同一时间间隔中的第一数据根据时间顺序依次存储在对应的队列中,每个
队列均有第一键和第二键,所述第一键用于所述第一存储器监听其是否过期,若是,则根据对应队列中的第一数据依次重新生产消息,所述第二键用于保存对应队列的元数据。
15.优选地,所述第一存储器具体为redis。
16.优选地,若在预设次数阈值内根据所述第一数据成功生产消息,则在预设时间后将该第一数据从所述第一存储器中进行删除。
17.另一方面,本发明还提供了一种私有云中kafka部署装置,所述装置包括:
18.回调模块,用于通过预设回调接口对生产消息失败的第一数据进行重新生产,所述预设回调接口与kafka连接;
19.第二生产模块,用于当重新生产的次数超过预设次数阈值且消息生产失败时,将对应的第一数据保存至第二存储器中,并在预设时间周期到达时根据所述第二存储器中的第一数据重新生产消息,同时将生产成功的消息保存至kafka中。
20.优选地,所述回调模块具体用于:
21.将所述第一数据保存至第一存储器中;
22.从所述第一存储器中调取所述第一数据并重新生产消息。
23.优选地,所述回调模块具体用于:
24.在所述第一存储器中根据预设时间间隔生成队列,
25.将位于同一时间间隔中的第一数据根据时间顺序依次存储在对应的队列中,其中,每个队列均有第一键和第二键,所述第一键用于所述第一存储器监听其是否过期,若是,则根据对应队列中的第一数据依次重新生产消息,所述第二键用于保存对应队列的元数据。
26.优选地,所述第一存储器具体为redis。
27.再一方面,本发明还提供了一种电子设备,包括:
28.处理器;
29.用于存储所述处理器可执行指令的第三存储器;
30.所述处理器被配置为用于执行如上述的方法。
31.本发明提供的一种私有云中kafka部署方法、装置及电子设备,与现有技术相比,本方法通过预设回调接口对生产消息失败的第一数据进行重新生产,所述预设回调接口与kafka连接;然后当重新生产的次数超过预设次数阈值且消息生产失败时,将对应的第一数据保存至第二存储器中,并在预设时间周期到达时根据所述第二存储器中的第一数据重新生产消息,同时将生产成功的消息保存至kafka中,实现了在降低私有化互联网平台的成本和资源的前提下数据不丢失,有效地提升了用户的使用体验。
附图说明
32.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1所示为本说明书实施例提供的私有云中kafka部署方法的流程示意图;
34.图2所示为本说明书实施例提供的私有云中kafka部署装置的结构示意图。
具体实施方式
35.为了使本领域普通技术人员更好地理解本说明书中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
36.如图1所示为本说明实施例提供的私有云中kafka部署方法的流程示意图,虽然本说明提供了如下实施例或附图中所示的方法操作步骤或装置结构,但基于常规或无需创造性劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元,在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
37.本说明实施例中提供的私有云中kafka部署方法可以应用在客户端和服务器等终端设备中,如图1所示,所述方法具体包括如下步骤:
38.步骤s101、通过预设回调接口对生产消息失败的第一数据进行重新生产,所述预设回调接口与kafka连接。
39.具体的,预设回调接口可以是一个自定义的kafkaproducercallback类,实现kafka自带的callback类,用于处理kafka生产消息失败的处理,将kafkaproducercallback作为回调方法,入参为重试次数和消息元数据。在回调方法中如果出现异常,则表示生产消息失败,代表kafka出现了故障,此时通过预设回调接口重新生产消息。
40.为了避免数据丢失,在本技术实施例中,通过预设回调接口对生产消息失败的第一数据进行重新生产,具体为:
41.将所述第一数据保存至第一存储器中;
42.从所述第一存储器中调取所述第一数据并重新生产消息。
43.为了更加及时准确地产生消息,在本技术实施例中,所述将所述第一数据保存至第一存储器中,具体包括:
44.在所述第一存储器中根据预设时间间隔生成队列;
45.将位于同一时间间隔中的第一数据根据时间顺序依次存储在对应的队列中,每个队列均有第一键和第二键,所述第一键用于所述第一存储器监听其是否过期,若是,则根据对应队列中的第一数据依次重新生产消息,所述第二键用于保存对应队列的元数据。
46.具体的,第一存储器具体可以为redis,其为一种高性能的key-value存储系统,其效率更高,在kafka宕机或故障过程中,每秒都可能有第一数据进入回调方法中,每条第一数据进行设置key也即键,其会造成臃肿,因此,可以根据预设时间间隔生成队列,将位于同一时间间隔中的第一数据根据时间顺序依次存储在对应的队列中,第一键的格式可以为shadow:202204141700:1,第二键的格式可以为metadata:202204141700:1,其中1为重新生产的次数,并且redis自带一个监听器,用于监听键过期的消息。
47.为了避免第一存储器中数据堆积,在本技术实施例中,若在预设次数阈值内根据
所述第一数据成功生产消息,则在预设时间后将该第一数据从所述第一存储器中进行删除。
48.步骤s102、当重新生产的次数超过预设次数阈值且消息生产失败时,将对应的第一数据保存至第二存储器中,并在预设时间周期到达时根据所述第二存储器中的第一数据重新生产消息,同时将生产成功的消息保存至kafka中。
49.具体的,回调过程中重新生产的次数超过预设次数阈值时,则说明消息一直生产失败,kafka仍未恢复,为了防止第一存储器也即redis中数据堆积,将对应的第一数据保存至第二存储器中,并在预设时间周期到达时根据所述第二存储器中的第一数据重新生产消息,也即在第二存储器中开启一个定时任务定时读取第二存储器中的第一数据,再次生产消息直到生产成功并保存至kafka中。
50.经过上述处理后,能够实现在降低私有化互联网平台的成本和资源的前提下,保证数据不丢失,保障了数据的完整性。
51.基于上述的私有云中kafka部署方法,本说明一个或多个实施例还提供一种私有云中kafka部署的终端,所述终端可以包括使用了本说明书实施例所述方法的装置、软件、模块、插件、服务器、客户端等并结合必要的实施硬件的装置,基于同一创新构思,本说明书实施例提供的一个或多个实施例中的系统如下面的实施例所述,由于系统解决问题的实施方案与方法类似,因此本说明书实施例具体的系统的实施可以参考前述方法的实施,重复之处不再赘述,以下所使用的术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,软硬件结合的实现也是可能并被构想的。
52.具体地,图2是本说明书提供的私有云中kafka部署装置一个实施例的模块结构示意图,如图2所示,本说明书中提供的数据安全访问装置包括:
53.回调模块201,用于通过预设回调接口对生产消息失败的第一数据进行重新生产,所述预设回调接口与kafka连接;
54.第二生产模块202,用于当重新生产的次数超过预设次数阈值且消息生产失败时,将对应的第一数据保存至第二存储器中,并在预设时间周期到达时根据所述第二存储器中的第一数据重新生产消息,同时将生产成功的消息保存至kafka中。
55.需要说明的是,上述的系统根据对应方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照上述对应的方法实施例的描述,在此不作一一赘述。
56.本技术实施例还提供了一种电子设备,包括:
57.处理器;
58.用于存储所述处理器可执行指令的第三存储器;
59.所述处理器被配置为用于执行如上述实施例提供的方法。
60.本技术实施例提供的电子设备,通过第三存储器存储处理器的可执行指令,当处理器执行该可执行指令时,能够通过预设回调接口对生产消息失败的第一数据进行重新生产,所述预设回调接口与kafka连接;然后当重新生产的次数超过预设次数阈值且消息生产失败时,将对应的第一数据保存至第二存储器中,并在预设时间周期到达时根据所述第二存储器中的第一数据重新生产消息,同时将生产成功的消息保存至kafka中,实现了在降低私有化互联网平台的成本和资源的前提下数据不丢失。
61.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
62.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
63.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
64.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合
65.本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1