本文作者:kaifamei

基于消息队列的批量物理灰度方法及装置与流程

更新时间:2025-01-11 22:37:42 0条评论

基于消息队列的批量物理灰度方法及装置与流程



1.本公开涉及云计算技术领域,具体涉及灰度更新技术领域,更具体地涉及一种基于消息队列的批量物理灰度方法、装置、设备、存储介质和程序产品。


背景技术:



2.随着信息技术的发展,数字信息海量增加,尤其是客户量巨大的企业如电信业,银行业,大型互联网公司等而言,有着大量日间及夜间的批量数据处理。这些客户数据影响范围大,信息数据处理程序的稳定性则变得非常重要,但软件需要不断地更新迭代,而程序的更新将增大不稳定性,随着企业的发展,使得这对矛盾变得突出。
3.相关技术中,会定期对服务器停机以完成批量程序的升级维护,,这种方式一定程度影响了业务的正常开展,影响用户体验。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:



5.鉴于上述问题,本公开提供了实现新旧版本程序平稳过渡的基于消息队列的批量物理灰度方法、装置、设备、介质和程序产品。
6.根据本公开的第一个方面,提供了一种基于消息队列的批量物理灰度方法,所述方法包括:
7.响应于批量执行器程序的更新指令,根据灰度参数对批量数据进行灰度染;
8.按照负载均衡策略对所述批量数据进行容器预分配,其中,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序;
9.根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中;以及
10.消费所述主题分区的批量数据并将处理结果写入数据库。
11.根据本公开的实施例,所述按照负载均衡策略对所述批量数据进行容器预分配包括:
12.获取容器资源信息,所述容器资源信息包括容器cpu和容器内存;
13.根据所述容器cpu和所述容器内存确定每一容器的最大容量值,所述最大容量值为所述容器能够处理的批量数据的最大条数;以及
14.根据容器编号、容器的灰白标识和所述最大容量值确定所述批量数据的执行容器编号。
15.根据本公开的实施例,所述根据灰度参数对批量数据进行灰度染包括:
16.根据所述灰度参数确定染策略;
17.根据所述染策略确定待染的批量数据;
18.在所述待染的批量数据的头部加入灰度染标识,以完成灰度染。
19.根据本公开的实施例,所述消费所述主题分区的批量数据包括:
20.从分区组中通过组偏移变量读取批量数据的头部数据,以确定所述批量数据的执行容器编号;
21.若确定所述执行容器编号和当前容器编号相同,则由当前容器直接处理该条批量数据;
22.若确定所述执行容器编号和当前容器编号不同,则根据当前容器的执行权值变量处理该条批量数据。
23.根据本公开的实施例,所述根据当前容器的执行权值变量处理该条批量数据包括:
24.将所述执行权值变量减去1;
25.若确定所述执行权值变量等于预设阈值,则处理该条批量数据,并重置执行权值变量;
26.若确定所述执行权值变量大于预设阈值,则将消息状态设为未处理,并重置分区组偏移回到原来的位置。
27.根据本公开的实施例,所述主题分区包括灰度主题分区和非灰度主题分区,所述灰度主题分区的批量数据由灰度容器消费,所述非灰度主题分区的批量数据由白版容器消费。
28.本公开的第二方面提供了一种基于消息队列的批量物理灰度装置,所述装置包括:
29.灰度染模块,用于响应于批量执行器程序的更新指令,根据灰度参数对批量数据进行灰度染;
30.容器预分配模块,用于按照负载均衡策略对所述批量数据进行容器预分配,其中,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序;
31.发送模块,用于根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中;以及
32.数据处理模块,用于消费所述主题分区的批量数据并将处理结果写入数据库。
33.根据本公开的实施例,容器预分配模块包括获取子模块、第一确定子模块和第二确定子模块。
34.获取子模块,用于获取容器资源信息,所述容器资源信息包括容器cpu和容器内存;
35.第一确定子模块,用于根据所述容器cpu和所述容器内存确定每一容器的最大容量值,所述最大容量值为所述容器能够处理的批量数据的最大条数;以及
36.第二确定子模块,用于根据容器编号、容器的灰白标识和所述最大容量值确定所述批量数据的执行容器编号。
37.根据本公开的实施例,灰度染模块包括:第三确定子模块、第四确定子模块和染子模块。
38.第三确定子模块,用于根据所述灰度参数确定染策略;
39.第四确定子模块,用于根据所述染策略确定待染的批量数据;
40.染子模块,用于在所述待染的批量数据的头部加入灰度染标识,以完成灰度染。
41.根据本公开的实施例,数据处理模块包括:第五确定子模块、第一处理子模块和第二处理子模块。
42.第五确定子模块,用于从分区组中通过组偏移变量读取批量数据的头部数据,以确定所述批量数据的执行容器编号;
43.第一处理子模块,用于若确定所述执行容器编号和当前容器编号相同,则由当前容器直接处理该条批量数据;
44.第二处理子模块,用于若确定所述执行容器编号和当前容器编号不同,则根据当前容器的执行权值变量处理该条批量数据。
45.根据本公开的实施例,第二处理子模块包括:执行权值变量更新单元、第一处理单元和第二处理单元。
46.执行权值变量更新单元,用于将所述执行权值变量减去1;
47.第一处理单元,用于若确定所述执行权值变量等于预设阈值,则处理该条批量数据,并重置执行权值变量;
48.第二处理单元,用于若确定所述执行权值变量大于预设阈值,则将消息状态设为未处理,并重置分区组偏移回到原来的位置。
49.本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述基于消息队列的批量物理灰度方法。
50.本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述基于消息队列的批量物理灰度方法。
51.本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于消息队列的批量物理灰度方法。
52.通过本公开的实施例提供的一种基于消息队列的批量物理灰度方法,根据灰度参数对批量数据进行灰度染,同时将容器区分为灰度容器和白版容器,使得批量作业程序能够快速迭代更新,降低发布带来的影响,按照负载均衡策略对所述批量数据进行容器预分配,由于容器运行在云平台中,具有弹性伸缩特点,充分利用计算机资源,无需关心灰度容器以及白版容器的实际运行数量,系统将根据实际数据量自动伸缩增减,为企业产品升级决策提供了极大的灵活性和稳定性。
附图说明
53.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
54.图1示意性示出了根据本公开实施例的基于消息队列的批量物理灰度方法、装置、设备、介质和程序产品的应用场景图;
55.图2示意性示出了根据本公开实施例提供的基于消息队列的批量物理灰度方法的系统架构图;
56.图3示意性示出了根据本公开实施例提供的一种基于消息队列的批量物理灰度方法的流程图;
57.图4示意性示出了根据本公开实施例提供的灰度染方法的流程图;
58.图5示意性示出了根据本公开实施例提供的染后批量数据的数据结构的示意图;
59.图6示意性示出了根据本公开实施例提供的均衡处理方法的流程图;
60.图7示意性示出了根据本公开实施例提供的消息交互通道分区的示意图;
61.图8示意性示出了根据本公开实施例提供的消费主题分区批量数据过程的示意图;
62.图9示意性示出了根据本公开实施例的一种基于消息队列的批量物理灰度装置的结构框图;
63.图10示意性示出了根据本公开实施例的适于实现基于消息队列的批量物理灰度方法的电子设备的方框图。
具体实施方式
64.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
65.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
66.在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
67.在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
68.基于上述技术问题,本公开的实施例提供了基于消息队列的批量物理灰度方法,所述方法包括:响应于批量执行器程序的更新指令,根据灰度参数对批量数据进行灰度染;按照负载均衡策略对所述批量数据进行容器预分配,其中,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序;根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中;消费所述主题分区的批量数据并将处理结果写入数据库。
69.图1示意性示出了根据本公开实施例的基于消息队列的批量物理灰度方法、装置、设备、介质和程序产品的应用场景图。
70.如图1所示,根据该实施例的应用场景100可以包括灰度发布场景。网络104用以在
终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
71.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
72.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
73.服务器105可以是为数据交互服务器,针对用户通过服务器发起的批量程序更新指令进行灰度更新,例如响应于用户利用终端设备101、102、103所发出的程序更新指令,该数据交互服务器根据预先配置的灰度参数和云平台容器资源使用情况对容器和批量数据进行灰度染,并将染后的批量数据推送到数据交互通道中,由容器的执行器进行消费。
74.需要说明的是,本公开实施例所提供的基于消息队列的批量物理灰度方法一般可以由服务器105执行。相应地,本公开实施例所提供的基于消息队列的批量物理灰度装置一般可以设置于服务器105中。本公开实施例所提供的基于消息队列的批量物理灰度方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集执行。相应地,本公开实施例所提供的基于消息队列的批量物理灰度也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集中。
75.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
76.需要说明的是,本公开实施例确定的基于消息队列的批量物理灰度方法和装置可用于云计算技术领域,也可用于金融技术领域,还可用于除金融领域之外的任意领域,本公开实施例确定的基于消息队列的批量物理灰度方法和装置的应用领域不做限定。
77.图2示意性示出了根据本公开实施例提供的基于消息队列的批量物理灰度方法的系统架构图。结合图2对本公开实施例的批量作业物理灰度方法中各组件进行说明,如图2所示,包括:文件服务器、数据灰度配置中心、数据交互服务器、数据交互通道、灰度容器、白版容器和数据库。其中文件服务器:与外部系统交互的数据存储系统,链接应用系统服务器,提供大容量存储空间,具有高可靠性和稳定性。
78.数据灰度配置中心:灰度参数的配置与管理,参数统一发布。灰度参数可灵活配置,根据不同的策略,支持按百分比进行灰度;按客户特征进行灰度,如客户唯一标识键,客户设备id,地域,年龄段等信息;按特定算法计算等。
79.数据交互服务器:连接数据灰度配置中心,文件服务器或者数据源数据库,消息处理系统,以及云平台资源控制器。通过数据灰度配置中心,获取策略配置参数。从文件服务器或者数据源数据库获取源数据,按照策略配置参数进行计算处理,给符合条件的源数据进行染,打上灰度标签。通过云平台资源控制器取的批量执行容器的资源使用情况,按照负载均衡策略,对源数据分配实际批量执行器,达到均衡使用。在对源数据经过加工处理后,其推送至数据交互通道系统。
80.数据交互通道:核心组件由消息处理系统,连接生产方与消费方。可配置多分区多通道,具备快速读写能力,接收生产方数据,并由消费方按指定通道和分区对数据进行消
费。
81.灰度容器:容器中运行新版本批量处理程序,容器由云平台统一管理。支持弹性伸缩,当批量作业处理数据量大时,根据整体资源情况自动增加处理容器数量,当数据量少时,自动减少容器数量。通过云平台资源管理器将容器实时启动数量,以及使用资源情况通知数据交互服务器
82.白版容器:容器中运行旧版本批量处理程序,容器由云平台统一管理。支持弹性伸缩,当批量作业处理数据量大时,根据整体资源情况自动增加处理容器数量,当数据量少时,自动减少容器数量。通过云平台资源管理器将容器实时启动数量,以及使用资源情况通知数据交互服务器
83.数据库:存储批量业务数据,不区分白版与灰度,根据企业业务形式制定数据库变更规范进行升级管理。
84.以下将基于图1描述的场景和图2的系统架构,通过图3~图6本公开实施例的基于消息队列的批量物理灰度方法进行详细描述。
85.图3示意性示出了根据本公开实施例提供的一种基于消息队列的批量物理灰度方法的流程图。如图3所示,该实施例的基于消息队列的批量物理灰度方法包括操作s210~操作s240,该方法可以由服务器或其他计算设备执行。
86.当系统接收到批量执行器程序的更新指令后,为了不影响业务的正常处理,本公开实施例采用灰度更新以实现批量程序的平稳更新。批量数据根据数据来源分为交互式批量数据和应用内批量数据两大类,与外系统有关联交互的,通过文件或者消息或其他形式数据传输示为交互式批量,由应用内部发起的,与外部系统无数据交互的称为应用内批量。以文件服务器与外部系统数据交互为例进行说明,对于应用内批量,除了数据来源不同,其他处理流程与交互式批量相同。
87.在操作s210,响应于批量执行器程序的更新指令,根据灰度参数对批量数据进行灰度染。
88.一个示例中,文件服务器负责接收外部系统文件,并存放到磁盘指定位置。交互时使用消息方式进行,则先通过消息处理组件对消息进行处理后,再存入磁盘。若交互以数据流方式进行,则通过流式处理组件对流数据进行格式化后存入磁盘。数据交互服务器可对文件进行读取。数据交互服务器启动时从数据灰度配置中心获取灰度参数,灰度参数由数据灰度配置中心配置和管理,不同灰度参数表征不同的染策略。当交互式批量作业通过定时或者其他方式触发启动时,数据交互服务器将从文件服务器获取数据文件,逐一读取数据文件中的记录,根据灰度参数,对部分批量数据进行灰度染,打上灰度标签。染处理后,将记录按照业务唯一键记录跟踪数据库,记录内容为业务唯一键以及灰度标识。灰度染处理的具体过程可参见图4示出的操作s211~操作s213,在此不再赘述。
89.在操作s220,按照负载均衡策略对所述批量数据进行容器预分配。
90.在对批量数据染后,为了充分利用计算机资源,根据云平台容器资源的使用情况按照负载均衡策略对数据进行预分配实际的批量执行器。本公开的批量数据由云平台的容器执行,具体的,容器中加载有不同版本的批量执行器程序,其中装载新版本批量执行程序的容器为灰度容器,装载旧版本批量执行程序的容器为白版容器,根据预设算法和获取到的容器资源使用情况确定当前容器能够处理批量数据的最大容量,对批量数据进行容器
的预分配,具体过程可参见图6所示出的操作s211~操作s213,在此不再赘述。
91.在操作s230,根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中。
92.在操作s240,消费所述主题分区的批量数据并将处理结果写入数据库。
93.根据本公开的实施例,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序。
94.根据本公开的实施例,在对批量数据染之后,根据批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中,所述主题分区包括灰度主题分区和非灰度主题分区,即消息中间件中有灰度分区和非灰度分区两种topic主题,灰度数据推送至灰度主题分区中,非灰度数据推送至非灰度主题分区中。云平台的容器按照配置策略,区分为白版容器和灰度容器,批量作业的具体业务逻辑处理由这两组容器负责。批量执行器作为消费方,白版容器和灰度容器分两个维度从消息队列中获取数据。灰度主题分区的批量数据由灰度容器消费,所述非灰度主题分区的批量数据由白版容器消费。从而完成新旧批量执行器程序的平稳更新。对用户无感,不影响业务的正常运行,不影响用户的体验。
95.通过本公开的实施例提供的一种基于消息队列的批量物理灰度方法,根据灰度参数对批量数据进行灰度染,同时将容器区分为灰度容器和白版容器,使得批量作业程序能够快速迭代更新,降低发布带来的影响,按照负载均衡策略对所述批量数据进行容器预分配,由于容器运行在云平台中,具有弹性伸缩特点,充分利用计算机资源,无需关心灰度容器以及白版容器的实际运行数量,系统将根据实际数据量自动伸缩增减,为企业产品升级决策提供了极大的灵活性和稳定性。下面将结合图4介绍本公开实施例提供的灰度染的过程。
96.图4示意性示出了根据本公开实施例提供的灰度染方法的流程图,图5示意性示出了根据本公开实施例提供的染后批量数据的数据结构的示意图。如图4所示,操作s210包括操作s211~操作s213。
97.在操作s211,根据所述灰度参数确定染策略。
98.在操作s212,根据所述染策略确定待染的批量数据。
99.在操作s213,在所述待染的批量数据的头部加入灰度染标识,以完成灰度染。
100.一个示例中,对从数据灰度配置中心获取的灰度参数进行解析,确定染策略。其中,染策略主要包括三种方式:
101.1)按一定比例进行染,例如灰度比例30%,白比例70%。
102.2)按特征值进行染,根据具体的业务需求,例如可以是针对某地区的用户批量数据进行染,可以是根据用户性别进行染,可以是根据客户id编号区间进行染。
103.3)按特定算法进行染,如记录业务唯一键进行哈希计算,符合特定条件的记录进行灰度处理,比方说计算哈希值后取尾号为0-9某一数字。
104.参数解析处理后,循环处理所有记录,在每条记录数据最开始的地方加入灰度染标志位,对符合灰度的数据打上灰度标签,进行灰度染。比如标记位值为1表示为灰度,0表示非灰度。染后批量数据如图5所示。
105.图6示意性示出了根据本公开实施例提供的均衡处理方法的流程图,图7示意性示出了根据本公开实施例提供的消息交互通道分区的示意图。如图6所示,操作s220包括操作s221~操作s223。
106.在操作s221,获取容器资源信息,所述容器资源信息包括容器cpu和容器内存。
107.在操作s222,根据所述容器cpu和所述容器内存确定每一容器的最大容量值。
108.根据本公开的实施例,所述最大容量值为所述容器能够处理的批量数据的最大条数。
109.在操作s223,根据容器编号、容器的灰白标识和所述最大容量值确定所述批量数据的执行容器编号。
110.一个示例中,云平台资源管理器能够收集容器资源使用情况,容器数量等信息。与数据交互服务器进行数据交互,数据交互服务器取得容器资源信息。假定只使用容器数量,容器cup和内存作为资源使用指标,为阐述方便起见,假设1个容器内单位时间1个cpu指令和1个内存空间(注:实施时将按具体指令数和具体内存占用空间,此处只作理论说明)可以处理一条记录。设cup当前单位时间内可执行指令数为x个,内存可用空间为y个,容器v可处理记录数为k条,则:
111.k=min(x,y)
112.对于n个容器vn,每个容器可处理记录数为:
113.v1=k1,v2=k2,v3=k3......vn=kn,其中kn=min(xn,yn)
114.设定某个批次需处理总记录数为r,则对于某一容器n所需要处理的记录rn有
115.rn=kn/(k1+k2+k3+...+kn)*r
116.数据交互服务器根据上述算法对数据记录设置容器编号(也称之为执行编号),例如容器1需处理3条记录,则将3条记录的容器编号设为1。灰度数据只由灰度容器处理,非灰度数据由白版容器处理。消息通道根据灰度与非灰度设置不同分区组,同一分区组内只有灰度或非灰度数据。最后数据交互服务器区分灰白分区后,摘除灰度标志位,再将处理后的数据推送到消息交互通道中,如图7所示。
117.图8示意性示出了根据本公开实施例提供的消费主题分区批量数据过程的示意图。如图8所示,包括操作s310~操作s330。
118.在操作s310,从分区组中通过组偏移变量读取批量数据的头部数据,以确定所述批量数据的执行容器编号;
119.在操作s320,若确定所述执行容器编号和当前容器编号相同,则由当前容器直接处理该条批量数据;
120.在操作s330,若确定所述执行容器编号和当前容器编号不同,则根据当前容器的执行权值变量处理该条批量数据。
121.根据本公开的实施例,根据当前容器的执行权值变量处理该条批量数据包括:将所述执行权值变量减去1;若确定所述执行权值变量等于预设阈值,则处理该条批量数据,并重置执行权值变量;若确定所述执行权值变量大于预设阈值,则将消息状态设为未处理,并重置分区组偏移回到原来的位置。
122.一个示例中,由于本公开实施例中对批量数据进行了容器的预分配,为了避免对应该条记录处理的容器宕机,后续所有容器无法处理该记录,本公开实施例增加了容错机
制以提高批量数据处理的高可用性。具体的,容器根据自身灰白属性,分别从对应的分区组中获取数据。容器从分区组中通过组偏移变量offset读取消息头部数据,获取容器编号判断是否为本容器处理。如果为本容器处理,则获取数据内容,正常处理该记录。如果为非本容器处理,则按如下方式处理:执行器内部维护一个执行权值变量,假定为w,开始设置w为某一数值(可根据具体资源情况设置),比如5。当读取到的消息并非本容器处理时,将权值减去1,当权值为0时。则处理该条数据。如果权值不为0,则将消息状态设为未处理,并重置分区组偏移回到原来的位置,并等待一个设定时间(比如200毫秒),让该条消息对应处理的容器去读取处理。白版或者灰度容器中批量执行器对各自数据进行处理,作业处理结果写入数据库,数据库使用的是同一套schemer,并不区分灰度与白版,这就要求数据库的升级需同时兼任白版执行器与灰度执行器,应根据具体业务逻辑编制相应的企业数据库升级规范,按照规范指引进行数据库升级。
123.基于上述基于消息队列的批量物理灰度方法,本公开还提供了一种基于消息队列的批量物理灰度装置。以下将结合图9对该装置进行详细描述。
124.图9示意性示出了根据本公开实施例的一种基于消息队列的批量物理灰度装置的结构框图。
125.如图9所示,该实施例的基于消息队列的批量物理灰度装置800包括灰度染模块810、容器预分配模块820、发送模块830和数据处理模块840。
126.灰度染模块810用于响应于批量执行器程序的更新指令,根据灰度参数对批量数据进行灰度染。在一实施例中,灰度染模块810可以用于执行前文描述的操作s210,在此不再赘述。
127.容器预分配模块820用于按照负载均衡策略对所述批量数据进行容器预分配,其中,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序。在一实施例中,容器预分配模块820可以用于执行前文描述的操作s220,在此不再赘述。
128.发送模块830用于根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中。在一实施例中,发送模块830可以用于执行前文描述的操作s230,在此不再赘述。
129.数据处理模块840用于消费所述主题分区的批量数据并将处理结果写入数据库。在一实施例中,数据处理模块840可以用于执行前文描述的操作s240,在此不再赘述。
130.根据本公开的实施例,容器预分配模块820包括获取子模块、第一确定子模块和第二确定子模块。
131.获取子模块,用于获取容器资源信息,所述容器资源信息包括容器cpu和容器内存。在一实施例中,获取子模块可以用于执行前文描述的操作s221,在此不再赘述。
132.第一确定子模块,用于根据所述容器cpu和所述容器内存确定每一容器的最大容量值,所述最大容量值为所述容器能够处理的批量数据的最大条数。在一实施例中,第一确定子模块可以用于执行前文描述的操作s222,在此不再赘述。
133.第二确定子模块,用于根据容器编号、容器的灰白标识和所述最大容量值确定所述批量数据的执行容器编号。在一实施例中,第二确定子模块可以用于执行前文描述的操作s223,在此不再赘述。
134.根据本公开的实施例,灰度染模块810包括:第三确定子模块、第四确定子模块和染子模块。
135.第三确定子模块,用于根据所述灰度参数确定染策略。在一实施例中,第三确定子模块可以用于执行前文描述的操作s211,在此不再赘述。
136.第四确定子模块,用于根据所述染策略确定待染的批量数据。在一实施例中,第四确定子模块可以用于执行前文描述的操作s212,在此不再赘述。
137.染子模块,用于在所述待染的批量数据的头部加入灰度染标识,以完成灰度染。在一实施例中,染子模块可以用于执行前文描述的操作s213,在此不再赘述。
138.根据本公开的实施例,数据处理模块840包括:第五确定子模块、第一处理子模块和第二处理子模块。
139.第五确定子模块,用于从分区组中通过组偏移变量读取批量数据的头部数据,以确定所述批量数据的执行容器编号。在一实施例中,第五子模块可以用于执行前文描述的操作s310,在此不再赘述。
140.第一处理子模块,用于若确定所述执行容器编号和当前容器编号相同,则由当前容器直接处理该条批量数据。在一实施例中,第一处理子模块可以用于执行前文描述的操作s320,在此不再赘述。
141.第二处理子模块,用于若确定所述执行容器编号和当前容器编号不同,则根据当前容器的执行权值变量处理该条批量数据。在一实施例中,第二处理子模块可以用于执行前文描述的操作s330,在此不再赘述。
142.根据本公开的实施例,第二处理子模块包括:执行权值变量更新单元、第一处理单元和第二处理单元。
143.执行权值变量更新单元,用于将所述执行权值变量减去1。在一实施例中,执行权值变量更新单元可以用于执行前文描述的操作s330,在此不再赘述。
144.第一处理单元,用于若确定所述执行权值变量等于预设阈值,则处理该条批量数据,并重置执行权值变量。执行权值变量更新单元可以用于执行前文描述的操作s330,在此不再赘述。
145.第二处理单元,用于若确定所述执行权值变量大于预设阈值,则将消息状态设为未处理,并重置分区组偏移回到原来的位置。第二处理单元可以用于执行前文描述的操作s330,在此不再赘述。
146.输出子模块用于输出所述待分拣报文的分类结果。在一实施例中,决策树生成单元可以用于执行前文描述的操作s223,在此不再赘述。
147.根据本公开的实施例,获取模块810、分类模块820和分拣模块830中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,灰度染模块810、容器预分配模块820、发送模块830和数据处理模块840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实
现。或者,灰度染模块810、容器预分配模块820、发送模块830和数据处理模块840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
148.图10示意性示出了根据本公开实施例的适于实现基于消息队列的批量物理灰度方法的电子设备的方框图。
149.如图10所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
150.在ram 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、rom 902以及ram 903通过总线904彼此相连。处理器901通过执行rom 902和/或ram 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 902和ram 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
151.根据本公开的实施例,电子设备900还可以包括输入/输出(i/o)接口905,输入/输出(i/o)接口905也连接至总线904。电子设备900还可以包括连接至i/o接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
152.本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的基于消息队列的批量物理灰度方法。
153.根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 902和/或ram 903和/或rom 902和ram 903以外的一个或多个存储器。
154.本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的基于消息队列的批量物理灰度方法。
155.在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
156.在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
157.在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
158.根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c++,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
159.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
160.本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
161.以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

技术特征:


1.一种基于消息队列的批量物理灰度方法,其特征在于,所述方法包括:响应于批量执行器程序的更新指令,根据灰度参数对批量数据进行灰度染;按照负载均衡策略对所述批量数据进行容器预分配,其中,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序;根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中;以及消费所述主题分区的批量数据并将处理结果写入数据库。2.根据权利要求1所述的方法,其特征在于,所述按照负载均衡策略对所述批量数据进行容器预分配包括:获取容器资源信息,所述容器资源信息包括容器cpu和容器内存;根据所述容器cpu和所述容器内存确定每一容器的最大容量值,所述最大容量值为所述容器能够处理的批量数据的最大条数;以及根据容器编号、容器的灰白标识和所述最大容量值确定所述批量数据的执行容器编号。3.根据权利要求1所述的方法,其特征在于,所述根据灰度参数对批量数据进行灰度染包括:根据所述灰度参数确定染策略;根据所述染策略确定待染的批量数据;在所述待染的批量数据的头部加入灰度染标识,以完成灰度染。4.根据权利要求1中所述的方法,其特征在于,所述消费所述主题分区的批量数据包括:从分区组中通过组偏移变量读取批量数据的头部数据,以确定所述批量数据的执行容器编号;若确定所述执行容器编号和当前容器编号相同,则由当前容器直接处理该条批量数据;若确定所述执行容器编号和当前容器编号不同,则根据当前容器的执行权值变量处理该条批量数据。5.根据权利要求4所述的方法,其特征在于,所述根据当前容器的执行权值变量处理该条批量数据包括:将所述执行权值变量减去1;若确定所述执行权值变量等于预设阈值,则处理该条批量数据,并重置执行权值变量;若确定所述执行权值变量大于预设阈值,则将消息状态设为未处理,并重置分区组偏移回到原来的位置。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述主题分区包括灰度主题分区和非灰度主题分区,所述灰度主题分区的批量数据由灰度容器消费,所述非灰度主题分区的批量数据由白版容器消费。7.一种基于消息队列的批量物理灰度装置,其特征在于,所述装置包括:灰度染模块,用于响应于批量执行器程序的更新指令,根据灰度参数对批量数据进
行灰度染;容器预分配模块,用于按照负载均衡策略对所述批量数据进行容器预分配,其中,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序;发送模块,用于根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中;以及数据处理模块,用于消费所述主题分区的批量数据并将处理结果写入数据库。8.一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~6中任一项所述的基于消息队列的批量物理灰度方法。9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的基于消息队列的批量物理灰度方法。10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~6中任一项所述的基于消息队列的批量物理灰度方法。

技术总结


本公开提供了一种基于消息队列的批量物理灰度方法,涉及云计算技术领域,可以应用于金融科技领域。该方法包括:响应于批量执行器程序的更新指令,根据灰度参数对批量数据进行灰度染;按照负载均衡策略对所述批量数据进行容器预分配,其中,所述容器设置有灰白标识,所述容器包括白版容器和灰度容器,所述白版容器装载旧版本批量执行器程序,所述灰度容器装载新版本批量执行器程序;根据所述批量数据的灰度染标识将所述批量数据发送至消息队列对应的主题分区中;消费所述主题分区的批量数据并将处理结果写入数据库。本公开还提供了一种基于消息队列的批量物理灰度装置、设备、存储介质和程序产品。储介质和程序产品。储介质和程序产品。


技术研发人员:

赖俊朝 陈月珠 曾现元 高冶

受保护的技术使用者:

中国工商银行股份有限公司

技术研发日:

2022.09.14

技术公布日:

2022/12/12


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-45702-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-18 01:01:56

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论