首页> 中国专利> 基于容器的发号方法及发号器

基于容器的发号方法及发号器

摘要

本发明涉及一种基于容器的发号方法及发号器,包括在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;所述微服务的服务器在接收到发号请求后,获取唯一标识号;将所述唯一标识号进行反馈给调用方。本发明提供的技术方案是对容器生命周期事件的订阅和处理,获取服务器时间以及时间区间内部不重复的随机数,以保证各容器生成的标识号在这组容器中唯一、不重复。

著录项

  • 公开/公告号CN112398929A

    专利类型发明专利

  • 公开/公告日2021-02-23

    原文格式PDF

  • 申请/专利权人 北京金和网络股份有限公司;

    申请/专利号CN202011215421.8

  • 发明设计人 乌兰;邓贞才;梁强;连守财;

    申请日2020-11-04

  • 分类号H04L29/08(20060101);G06F9/455(20060101);

  • 代理机构11471 北京细软智谷知识产权代理有限责任公司;

  • 代理人尚文文

  • 地址 100089 北京市海淀区上地东路1号院盈创动力大厦A座401室

  • 入库时间 2023-06-19 09:58:59

说明书

技术领域

本发明属于电力市场技术领域,具体涉及一种基于容器的发号方法及发号器。

背景技术

在基于容器的微服务架构系统中,一个微服务通常后端由一组容器来提供服务,以保证系统的高可用和不间断服务。一组容器中的每个容器是相互独立的(容器彼此不知道除自己以外的容器的存在),在多个容器中同时并发生成唯一标识号,如何保证各容器生成的标识号在这组容器中唯一、不重复,这种场景就需要基于容器的发号器。

发明内容

有鉴于此,本发明的目的在于克服现有技术的不足,提供一种基于容器的发号方法及发号器,以解决现有技术中不能保证各容器生成的标识号在这组容器中唯一、不重复的问题。

为实现以上目的,本发明采用如下技术方案:一种基于容器的发号方法,包括:

在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;

所述微服务的服务器在接收到发号请求后,获取唯一标识号;

将所述唯一标识号进行反馈给调用方。

进一步的,所述微服务中设有部署模板,所述在微服务中预配置容器事件,包括:

在所述部署模板中部署所述容器启动事件和所述容器销毁事件;

将当前容器的名称传递到微服务内部。

进一步的,所述唯一标识号,包括:

服务器的时间戳、当前容器的唯一标识以及随机数。

进一步的,所述随机数为唯一随机数。

确定所述随机数为唯一随机数,包括:

确定在时间区间内单个容器生成唯一标识号的个数;

在相同的时间区间内,确定所述随机数唯一使用;

在下一个时间区间时,清空使用过的随机数。

进一步的,所述唯一标识具有生命周期,以使得所述唯一标识循环使用;

所述唯一标识具有生命周期,包括:

在所述容器启动事件中配置唯一标识并进行存储;

在所述容器销毁事件中对所述唯一标识进行删除。

进一步的,采用环境变量将当前容器的名称传递到微服务内部。

进一步的,所述环境变量包括至少一个属性信息,所述属性信息包括:

地址信息、密钥信息、权限信息。

进一步的,所述当前容器的唯一标识通过环境变量传入的容器名称获取。

本申请实施例提供一种基于容器的发号器,包括:

本申请实施例提供一种基于容器的发号器,包括:

配置模块,用于在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;

获取模块,用于所述微服务的服务器在接收到发号请求后,获取唯一标识号;

反馈模块,用于将所述唯一标识号进行反馈给调用方。

本申请实施例提供一种计算机设备,包括处理器,以及与所述处理器连接的存储器;

所述存储器用于存储计算机程序,计算机程序用于上述任一实施例提供的基于容器的发号方法;

所述处理器用于调用并执行所述存储器中的计算机程序。

本发明采用以上技术方案,能够达到的有益效果包括:

本发明提供一种基于容器的发号方法及发号器,包括在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;所述微服务的服务器在接收到发号请求后,获取唯一标识号;将所述唯一标识号进行反馈给调用方。本发明提供的技术方案是对容器生命周期事件的订阅和处理,获取服务器时间以及时间区间内部不重复的随机数,以保证各容器生成的标识号在这组容器中唯一、不重复。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于容器的发号方法的步骤示意图;

图2为本发明基于容器的发号器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

下面结合附图介绍本申请实施例中提供的一个具体的基于容器的发号方法及发号器。

如图1所示,本申请实施例中提供的基于容器的发号方法包括:

S101,在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;

首先,本申请提供的技术方案先要开发独立的容器事件处理程序(包含容器启动事件处理程序和容器销毁事件处理程序)。部署容器事件处理程序,在需要使用该发号器的微服务的部署模板中配置容器的启动、销毁事件处理程序。在需要使用该发号器的微服务中,将当前容器的名称传入(可使用环境变量传递)到服务内部。

S102,所述微服务的服务器在接收到发号请求后,获取唯一标识号;

在部署后,微服务中的服务器收到发号请求后,获取唯一标识号;唯一标识号是保证在个容器中唯一、不重复的识别号。

S103,将所述唯一标识号进行反馈给调用方。

在获取后唯一标识号后,将唯一标识号反馈给调用方

一些实施例中,所述微服务中设有部署模板,所述在微服务中预配置容器事件,包括:

在所述部署模板中部署所述容器启动事件和所述容器销毁事件;

将当前容器的名称传递到微服务内部。

具体的,开发独立的容器事件处理程序(包含容器启动事件处理程序和容器销毁事件处理程序);部署容器事件处理程序;在需要使用该发号器的微服务的部署模板中配置容器的启动、销毁事件处理程序;在需要使用该发号器的微服务中,将当前容器的名称传入(可使用环境变量传递)到服务内部。

优选的,所述唯一标识号,包括:

服务器的时间戳、当前容器的唯一标识以及随机数。

所述随机数为唯一随机数。

确定所述随机数为唯一随机数,包括:

确定在时间区间内单个容器生成唯一标识号的个数;

在相同的时间区间内,确定所述随机数唯一使用;

在下一个时间区间时,清空使用过的随机数。

一些实施例中,所述唯一标识具有生命周期,以使得所述唯一标识循环使用;

所述唯一标识具有生命周期,包括:

在所述容器启动事件中配置唯一标识并进行存储;

在所述容器销毁事件中对所述唯一标识进行删除。

具体的,获取服务器的当前时间戳,获取当前容器的唯一标识,获取不重复的随机数,然后将这三项信息组合为一个唯一标识号。容器的唯一标识需要订阅的容器生命周期事件;具体过程如下:开发容器生命周期处理程序;在容器的配置里订阅容器的容器启动事件和容器销毁事件,在启动事件里为容器分配唯一Id并存储;当需要使用容器唯一标识时,再将存储的容器的唯一标识取出;在容器销毁事件里将为容器分配的唯一标识删除,以使容器唯一标识符可以循环使用。具体说明,先要确定时间区间内单个容器最多支持生成多少个唯一标识号,这样随机数的范围就确定了,在同一时间区间里,使用过的随机的数不可重复使用;下一个时间区间到来时,清空上一个时间区间已使用过的随机数。例如,时间区间为2点到3点,下一时间区间可以为3点到4点,也可以是4点到5点,而2点到3点的时间区间与3点到4点的时间区间内可以有重复的随机数,但是2点到3点的时间区间内的随机数都不会重复,都是惟一的。

优选的,采用环境变量将当前容器的名称传递到微服务内部。

优选的,所述环境变量包括至少一个属性信息,所述属性信息包括:

地址信息、密钥信息、权限信息。

优选的,所述当前容器的唯一标识通过环境变量传入的容器名称获取。

可以理解的是,应用程序中环境变量包括多种属性信息,可以包括有地址信息和密钥信息,密钥信息可以有多个,用于不同程序数据交互过程中使用的数据密钥。环境变量的属性信息还可以包括其他属性信息,本申请还可以包括其他属性信息,本申请在此不做限定。

本申请提供的基于容器的发号方法的工作原理为:在需要使用该发号器的微服务中,将当前容器的名称传入(可使用环境变量传递)到服务内部;接受到发号请求,获取服务器的当前时间戳,获取当前容器的唯一标识(可通过环境变量传入的容器名称获取),获取不重复的随机数,然后将这三项信息组合为一个唯一标识号返回给调用方。

本申请实施例提供的一种基于容器的发号器,如图2所示,包括:

配置模块201,用于在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;

获取模块202,用于所述微服务的服务器在接收到发号请求后,获取唯一标识号;

反馈模块203,用于将所述唯一标识号进行反馈给调用方。

本申请提供的一种基于容器的发号器的工作原理是,配置模块201在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;获取模块202所述微服务的服务器在接收到发号请求后,获取唯一标识号;反馈模块203将所述唯一标识号进行反馈给调用方。

本申请实施例提供一种计算机设备,包括处理器,以及与处理器连接的存储器;

存储器用于存储计算机程序,计算机程序用于执行上述任一实施例提供的基于容器的发号方法;

处理器用于调用并执行存储器中的计算机程序。

综上所述,本发明提供一种基于容器的发号方法及发号器,包括在微服务中预配置容器事件;其中,所述容器事件包括容器启动事件和容器销毁事件;所述微服务的服务器在接收到发号请求后,获取唯一标识号;将所述唯一标识号进行反馈给调用方。本发明提供的技术方案是对容器生命周期事件的订阅和处理,获取服务器时间以及时间区间内部不重复的随机数,以保证各个容器生成的标识号在这组容器中唯一、不重复。

可以理解的是,上述提供的方法实施例与上述的发号器实施例对应,相应的具体内容可以相互参考,在此不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的发号器。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号