CN115016821A - 回调数据的灰度分发方法、装置、计算机设备和存储介质 - Google Patents
回调数据的灰度分发方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115016821A CN115016821A CN202210782655.3A CN202210782655A CN115016821A CN 115016821 A CN115016821 A CN 115016821A CN 202210782655 A CN202210782655 A CN 202210782655A CN 115016821 A CN115016821 A CN 115016821A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- callback
- current
- machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种回调数据的灰度分发方法、装置、计算机设备和存储介质。所述方法包括:接收第三方服务器发送的回调报文;提取所述回调报文中的当前业务的业务标识;确定预先为所述当前业务的业务标识配置的数据处理机器的目标机器类型;当所述目标机器类型为灰度机器时,将所述当前业务对应的业务数据发送至预先设定的灰度机器处理。本申请可以解决传统技术中,只能做到对用户端发起的消息进行灰度识别,确定该消息的来源是否属于灰度发布,而对非用户端的其他消息发送端所发送的消息则无法进行灰度识别的问题。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种回调数据的灰度分发方法、装置、计算机设备和存储介质。
背景技术
很多企业的业务在快速迭代过程中,经常出现一周发布两个版本,一个版本包含十多项需求的上线,如果按照传统的全量发布模式进行发布,由于版本在实际生产和测试之间还是存在一些差异,即使版本在测试通过的情况下上线,也容易出现一些未知的异常,造成各种线上故障,直接把问题暴露给全量用户。
因此,主流的做法是对版本采用灰度发布,只把后端和前端功能暴露给部分用户先使用,并在全量发布前持续监控版本实际的线上情况,保证版本无故障后再全量推送给全部用户使用,把故障影响面降低到最小范围。然而主流的做法只能做到对用户端发起的消息进行灰度识别,确定该消息的来源是否属于灰度发布,而对非用户端的其他消息发送端所发送的消息则无法进行灰度识别。
发明内容
基于此,有必要针对上述技术问题,提供一种回调数据的灰度分发方法、装置、计算机设备和存储介质。
一种回调数据的灰度分发方法,方法包括:
接收第三方服务器发送的回调报文;
提取回调报文中的当前业务的业务标识;
确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;
当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
一种回调数据的灰度分发装置,装置包括:
接收模块,用于接收第三方服务器发送的回调报文;
提取模块,用于提取回调报文中的当前业务的业务标识;
确定模块,用于确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;
发送模块,用于当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收第三方服务器发送的回调报文;
提取回调报文中的当前业务的业务标识;
确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;
当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收第三方服务器发送的回调报文;
提取回调报文中的当前业务的业务标识;
确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;
当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
上述回调数据的灰度分发方法、装置、计算机设备和存储介质,通过接收第三方服务器发送的回调报文;提取回调报文中的当前业务的业务标识;确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。本申请可以通过预先为当前业务的业务标识配置数据处理机器的目标机器类型,在收到回调报文时可以提取回调报文中的当前业务的业务标识,进一步根据为当前业务的业务标识预先配置的机器类型,确定当前业务是否需要走灰度机器执行后续数据处理流程,解决了传统技术中,只能对用户端发起的消息进行灰度识别,而对于第三方服务器关于业务的回调报文,由于请求不是从用户端发起的,所以没有携带含有业务版本信息的灰度请求头,导致无法做到传统技术那样根据请求头针对不同版本做流量分发到普通机器和灰度机器的问题。
附图说明
图1为一个实施例中回调数据的灰度分发方法的应用环境图;
图2为一个实施例中回调数据的灰度分发方法的流程示意图;
图3为一个实施例中确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型步骤的流程示意图;
图4为一个实施例中确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型步骤的流程示意图;
图5为一个实施例中将各业务标识与当前应用的各版本信息的映射关系存入预设缓存的流程示意图的流程示意图;
图6为一个实施例中将各物流单号与当前应用的各版本信息的映射关系存入预设缓存的流程示意图的流程示意图;
图7为一个实施例中提取回调报文中的当前业务的业务标识的流程示意图;
图8为一个实施例中第三方服务器的回调地址的配置的流程示意图;
图9为一个实施例中根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识的流程示意图;
图10为一个实施例中将当前业务对应的业务数据发送至预先设定的灰度机器或者普通机器处理的流程示意图;
图11为一个实施例中回调数据的灰度分发方法的原理框图;
图12为一个实施例中回调数据的灰度分发装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参考图1,图1为本申请一示例性实施例提供的一种回调数据的灰度分发方法的应用环境示意图。如图1所示,该应用环境中包括第三方服务器100以及数据回调服务器101,第三方服务器100与数据回调服务器101之间可以通过网络102实现可通信的连接,以实现本申请的回调数据的灰度分发方法。
第三方服务器100用于向数据回调服务器发送回调报文。其中,第三方服务器100可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
数据回调服务器101用于接收第三方服务器发送的回调报文;提取回调报文中的当前业务的业务标识;确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。其中,数据回调服务器101可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
网络102用于实现终端101与服务器100之间的网络连接,具体的,网络102可以包括多种类型的有线或无线网络。
在一个实施例中,如图2所示,提供了一种回调数据的灰度分发方法,以该方法应用于图1中的数据回调服务器为例进行说明,包括以下步骤:
S11、接收第三方服务器发送的回调报文。
本申请中,上述的第三方服务器可以为上述的数据回调服务器所依赖的其他服务器。如支付依赖的支付宝服务器、微信支付服务器、物流依赖的顺丰物流服务器、中通物流服务器等,对于数据回调服务器来说,都是属于第三方服务器。
进一步地,上述的回调报文可以为上述的第三方服务器根据预先设定的回调地址发送给数据回调服务器的报文。对于不同的第三方服务器其所发送的回调报文中的信息以及报文格式不同。例如,对于支付宝服务器其所发送的回调报文中可以包括某订单支付完成的信息。这里的报文格式可以包括多种,例如,form-data表单报文、json报文、xml报文、加密json报文以及加密xml报文。
S12、提取回调报文中的当前业务的业务标识。
本申请中,针对各第三方服务器可以预先设定多个业务,各业务预先设定对应的业务标识,用于唯一性标识各个业务。本申请中针对不同的业务场景下的各业务标识不同。例如,支付类的场景,其对应的业务标识可以为订单号,针对物流类的场景,其对应的业务标识可以为物流单号。各第三方服务器中可以设定多个业务场景,对应各业务场景可以设定多个业务以及对应的标识信息。
S13、确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型。
本申请中,上述的数据处理机器可以为用于处理各业务的业务数据的服务器。上述的机器类型为预先为各数据处理机器标记的特性。该机器类型可以根据实际需求进行标记或者设定。例如,本申请中,上述的机器类型可以包括灰度机器以及普通机器。灰度机器为处理灰度用户所发起的请求的机器,普通机器为处理其他用户所发起的请求的机器。
本申请中,当有新版本上线时,采用灰度发布的模式进行版本发布。具体地,在进行新版本发布时,先让部分用户先使用新版本,而不是百分百发布给所有用户,以防代码有bug导致所有用户受到影响。这里先使用新版本的一部分用户即为上述的灰度用户,仍使用旧版本的用户为其他用户。
S14、当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
本申请中,上述的业务数据可以包括各业务相关的数据,如订单业务,则是订单数据。将业务数据发送至预先设定的灰度机器处理,具体可以包括:通过灰度机器对业务数据进行建立物流订单、推送通知以及营销策略等处理。
在其中一个实施例中,如图3所示,上述的确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型,可以包括:
S31、根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息;
S32、确定预先为目标版本信息配置的数据处理机器的机器类型,得到目标机器类型。
本申请中,上述的预设缓存可以为预先设置的redis。由于网关承载了回调请求流量入口的责任,故在存储业务标记数据和解析规则的中间件,相较于数据库,缓存的性能更高效,故选择主流的redis做缓存。上述的当前应用可以为微信小程序,如商品交易小程序,上述的版本信息可以为微信小程序的版本号或者其他版本信息。
本申请中,假设当前应用为微信小程序,当有新版本发布时,采用灰度发布模式,将新版本的信息发送给微信服务器,由微信服务器将新版本随机推送给用户。其具体可以通过预先设置发布比例,根据该发布比例将新版本随机推送到用户前端。
例如,设置发布比例为10%,假设历史版本的版本号为V1.0.0,当前新版本版本号为V1.0.1,那么在灰度发布后一定时间范围内打开小程序,只有10%的用户前端代码会更新成新版本,即10%用户使用新版本V1.0.1,剩余90%的用户前端代码还是运行旧代码,即90%用户使用旧版本V1.0.0。
本申请针对这种发布方式,可以预先配置各版本信息对应的机器类型,且预先存储各版本信息与各业务标识的映射关系。
针对这种发布方式,数据回调服务器会预先配置各版本信息与机器类型的映射关系,即预先为各版本信息配置其对应的数据处理机器的机器类型。相应的,预设缓存中会对应存储当前应用的各版本信息与各业务的业务标识的映射关系,以便将当前业务的业务标识与预先存储的各版本信息与各业务标识的映射关系进行匹配,得到当前业务的业务标识对应的目标版本信息,进一步根据预先为各版本信息配置的机器类型,得到上述的目标机器类型。
本申请通过预先构建的各业务标识与当前应用的各版本信息的映射关系,得到当前业务的业务标识对应的目标机器类型,进一步根据该目标机器类型确定是否走灰度机器,解决了在微信小程序只能做随机推送的这种场景下的数据回调流程中,由于请求不是从用户端发起的,所以没有携带灰度请求头,导致无法根据请求头做流量分发到普通机器和灰度机器的问题。
在其中一个实施例中,如图4所示,上述的确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型,可以包括:
S41、根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的用户标识;
S42、确定预先为当前业务的业务标识对应的用户标识配置的数据处理机器的机器类型,得到目标机器类型。
本申请中,在对新版本进行灰度发布时,还可以通过以下方式进行发布:
微信服务器将新版本推送给指定的目标用户对应的终端以进行定向发布。具体地,可以预先选取目标用户的用户id,为各目标用户的用户id配置其机器类型为灰度机器。那么在灰度发布后一定时间范围内打开小程序,只有指定的目标用户的用户前端代码会更新成新版本,剩余用户使用旧版本。
针对这种发布方式,数据回调服务器上会预先配置各用户id对应的数据处理机器的机器类型。即目标用户的用户id配置机器类型为灰度机器,其余用户id配置机器类型为普通机器。相应的,预设缓存中会对应存储各用户id与各业务的业务标识的映射关系,以便将当前业务的业务标识与预先存储的各业务标识与各用户标识的映射关系进行匹配,得到当前业务的业务标识对应的目标版本信息,进一步根据预先为各版本信息配置的机器类型,得到上述的目标机器类型。
例如,数据回调服务器接收到订单1、订单2以及订单3对应的交易请求时,会对应存储订单1的订单号与发起该订单1的用户的用户标识的映射关系、订单2的订单号与发起该订单2的用户的用户标识的映射关系以及订单3的订单号与发起该订单3的用户的用户标识的映射关系。
本申请通过预先构建的各业务标识与各用户标识,得到当前业务的业务标识对应的目标机器类型,进一步根据该目标机器类型确定是否走灰度机器,解决了在微信小程序支持根据用户标识推送的这种场景下的数据回调流程中,由于请求不是从用户端发起的,没有携带灰度请求头,导致无法根据请求头做流量分发到普通机器和灰度机器的问题。
在其中一个实施例中,上述的确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型,还可以包括:
当预设缓存中存储了当前业务的业务标识对应的用户标识时,从预设缓存中获取当前业务的业务标识对应的用户标识;
确定预先为当前业务的业务标识对应的用户标识配置的数据处理机器的机器类型,得到目标机器类型;
当预设缓存中不存在当前业务的业务标识对应的用户标识时,从预设缓存中获取当前业务的业务标识对应的当前应用的目标版本信息;
确定预先为目标版本信息配置的数据处理机器的机器类型,得到目标机器类型。
具体而言,本申请还可以包括另一种发布方式:定向发布结合随机发布。即微信服务器可以针对一部分目标用户采用根据用户标识进行定向发布,剩余用户采用随机发布。
针对这种发布方式,数据回调服务器上可以预先为各个目标用户的用户标识(如用户id)配置对应的机器类型为灰度机器,并配置当前应用的各版本信息对应的机器类型,如配置旧的版本号对应的机器类型为普通机器,新的版本号对应的机器类型为灰度机器。
相应的,针对目标用户会对应存储各目标用户的用户标识与各目标用户所发起的业务的业务标识的映射关系到预设缓存中,针对非目标用户则对应存储其发起的各业务的业务标识与各非目标用户对应终端上当前应用的版本信息的映射关系到预设缓存中。例如,数据回调服务器接收到订单1对应的交易请求时,先判断发起该订单1的用户是否为目标用户,若是,则对应存储订单1的订单号与发起该订单1的用户的用户标识的映射关系,否则,则对应存储订单1的订单号与发起该订单1的终端上当前应用的版本信息的映射关系。
即在该实施例中,预设缓存中预先可以存储第一映射关系以及第二映射关系,该第一映射关系为各目标用户的用户标识与各目标用户所发起的业务的业务标识的映射关系,该第二映射关系为各非目标用户对应终端上当前应用的版本信息与各非目标用户所发起的业务的业务标识的映射关系。同时,预设缓存中还预先存储了各目标用户的用户标识对应的机器类型以及当前应用的各版本信息对应的机器类型。
进一步的,在接收到第三方服务器发送的回调报文时,提取回调报文中的当前业务的业务标识,将当前业务的业务标识与上述的第一映射关系进行匹配,若能匹配到当前业务的业务标识对应的用户标识,则根据该匹配得到的用户标识以及预先存储的各目标用户的用户标识对应的机器类型,得到目标机器类型。若根据第一映射关系未能匹配到当前业务的业务标识对应的用户标识,则将当前业务的业务标识与上述的第二映射关系进行匹配,得到当前业务的业务标识对应的当前应用的目标版本信息,根据匹配得到的目标版本信息以及预先存储的当前应用的各版本信息对应的机器类型,得到目标机器类型。
通过该实施方式可以解决在随机发布与根据用户标识定向发布的模式下,在数据回调过程中由于请求不是通过用户端发起的,导致无法根据请求头对回调数据进行灰度识别做流量分发的问题。
在其中一个实施例中,上述的当前业务的业务标识可以包括当前业务的订单号,上述的方法还可以包括:
接收各终端发送的各业务的交易请求,各交易请求中携带有各终端上当前应用的版本信息以及各业务对应的订单号;
将各业务对应的订单号与各终端上的当前应用的版本信息的映射关系存入预设缓存;
上述的根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息,可以包括:
根据所述预设缓存中存储的所述映射关系匹配所述当前业务的业务标识,获取所述当前业务的业务标识对应的当前应用的目标版本信息。
本申请中,对于各第三方服务器可以设定多个业务类型,各个业务类型。例如,上述的业务类型可以包括支付类,此时对应的业务标识可以为订单号。当业务类型为支付类时,上述的回调报文中可以携带支付的结果。上述的业务类型也可以为小程序消息推送类,此时对应的业务标识可以为消息id。上述的业务类型也可以为其他类别,对应的业务标识可以根据对应的业务类型进行设定,在此不做具体限定。
本申请针对各业务类型会预先存储各业务的业务标识与当前应用的各版本信息的映射关系。例如,对于支付类的业务类型,各终端在接收到用户的下单指令时,向数据回调服务器提交交易请求,该交易请求的请求头中携带有各终端上当前应用的版本信息。数据回调服务器提取各交易请求中的各终端上当前应用的版本信息,并创建各业务的业务标识与当前应用的各版本信息的映射关系存入预设缓存,以便后续根据所述预设缓存中存储的所述映射关系匹配所述当前业务的业务标识,获取所述当前业务的业务标识对应的当前应用的目标版本信息。
例如,数据回调服务器接收到订单1、订单2以及订单3对应的交易请求时,会对应存储订单1的订单号与发起该订单1的终端上当前应用的版本信息的映射关系、订单2的订单号与发起该订单2的终端上当前应用的版本信息的映射关系以及订单3的订单号与发起该订单3的终端上当前应用的版本信息的映射关系。
在其中一个实施例中,请参考图5,图5为一种实施例中,将各业务标识与当前应用的各版本信息的映射关系存入预设缓存的流程示意图。在图5中,包括普通用户51、普通用户的前端小程序52、灰度用户53、灰度用户的前端小程序54、数据回调服务器55以及预设缓存56。
具体地,普通用户51向前端小程序52发起访问请求,该访问请求可以为交易请求,如下单请求。普通用户51所发起的访问请求中携带有X-Mi-Version=1.0.0,即版本号为1.0.0。灰度用户52向前端小程序54发起访问请求,灰度用户所发起的访问请求中携带有X-Mi-Version=1.0.0,即版本号为1.0.1。其中,X-Mi-Version=1.0.0为旧版本,X-Mi-Version=1.0.1为新版本。本申请中预先配置了X-Mi-Version=1.0.1的版本号对应的机器类型为灰度机器,X-Mi-Version=1.0.0的版本号对应的机器类型为普通机器。
进一步地,数据回调服务器使用Nginx或者后端SpringCloudGateway之类的网关,对请求头X-Mi-Version进行解析得到对应的版本号。根据解析得到的版本号确定哪些用户的访问请求对应灰度机器,即确定哪些用户为灰度用户,将灰度用户52所发起的访问请求中的订单号与其版本信息关联性存储至预设缓存中,普通用户51对应的订单号与其版本信息不进行存储。或者,也可以既存储灰度用户52对应的订单号与其版本信息的映射关系,又存储普通用户51对应的订单号与其版本信息的映射关系。
本申请通过该实施方式,可以解决支付类的业务类型中回调数据的灰度分发问题。即解决了在支付类的业务场景下,由于在进行回调时请求不是通过用户端发起的,导致无法根据请求头做流量分发到普通机器和灰度机器的问题。
在其中一个实施例中,如图6所示,上述的当前业务的业务标识包括当前业务的物流单号,上述的方法还可以包括:
S61、在接收到各业务对应支付完成的通知信息时,获取各业务的物流单号;
S62、获取各业务对应的发起终端上当前应用的版本信息;
S63、将各业务的物流单号与当前应用的各版本信息的映射关系存入预设缓存中;
上述的根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息,包括:
根据所述预设缓存中存储的所述映射关系匹配所述当前业务的业务标识,获取所述当前业务的业务标识对应的当前应用的目标版本信息。
本申请中,上述的业务类型还可以包括物流类,此时对应的业务标识可以为物流单号。对于物流类的业务类型,上述的回调报文中可以携带有物流状态信息,如骑手已接单、骑手已送达以及用户联系不上等状态信息。
进一步地,本申请针对该业务类型在预设缓存的数据存储阶段,会在支付回调完成后,自动将各业务的物流单号与对应发起终端上当前应用的目标版本信息存入预设缓存,即在接收到各业务对应支付完成的通知信息时,获取各业务的物流单号;获取各业务对应的发起终端上当前应用的版本信息;将各业务的物流单号与当前应用的各版本信息的映射关系存入预设缓存中,以便后续根据所述预设缓存中存储的所述映射关系匹配所述当前业务的业务标识,获取所述当前业务的业务标识对应的当前应用的目标版本信息。
本申请中,通过该实施方式可以实现物流类的场景中,实时将物流状态数据回调至数据回调服务器,解决了传统技术中在物流类的业务场景下,由于在进行回调时请求不是通过用户端发起的,导致无法根据请求头做流量分发到普通机器和灰度机器的问题。
在其中一个实施例中,如图7所示,上述的提取回调报文中的当前业务的业务标识,可以包括:
S71、获取回调报文对应的目标回调地址;
S72、获取预设缓存中预先为目标回调地址配置的目标解析表达式;
S73、根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识。
本申请中,上述的回调地址是一种第三方服务器的通知机制,如支付后,用户输入密码后,第三方服务器如微信或者支付宝需要请求数据回调服务器提供的地址,以便微信或者支付宝根据该地址把支付的结果以回调报文的形式通知给数据回调服务器。因此,本申请在获取到回调报文后,可以进一步获取到回调报文对应的目标回调地址。
本申请中,上述的第三方服务器可以预先设定有一个或多个回调地址,具体根据第三方服务器中的各业务类型配置对应的回调地址,即一种业务类型对应配置一个回调地址。本申请中,各回调地址中携带有对应的业务类型,进一步根据各回调地址中的业务类型配置对应的解析表达式。
一种实施例中,若第三方服务器为支付宝,则可以为支付宝设置正向支付以及反向退款两种业务类型,针对该两种业务类型分别配置对应的回调地址,进一步可以根据各回调地址中携带的业务类型配置对应的解析表达式存入预设缓存中。
一种实施例中,预设缓存中所存储的数据如下表1所示。
表1
在表1中,第三方服务器包括支付宝服务器以及顺丰服务器。支付宝对应的业务类型包括正向支付以及反向退款。顺丰对应的业务类型包括物流状态跟踪。对应各业务类型配置有对应的回调地址,根据各回调地址中的业务类型配置有对应的解析表达式。对于各业务类型下包括多个业务以及各业务的业务标识。预设缓存中还包括各业务标识对应的版本信息,即发起各订单的终端上当前应用的版本信息。其中,上述的各版本信息可以相同也可以不同。例如,上述的版本信息1、版本信息2以及版本信息3可以同为旧版本(假设为V1.0.0),版本信息4、版本信息5以及版本信息6可以为新版本(假设为V1.0.1)。
由上表1可知,对于各第三方服务器可以存在多种业务类型,对于各业务类型需要对应配置一个回调地址以及一个解析表达式。
本申请中,具体可以根据目标解析表达式中的分隔符(如点号)对目标解析表达式进行切割,得到各字段,再利用json和xml工具循环获取到最后一个字段的取值,即得到当前业务的业务标识。
一种实施例中,上述的目标解析表达式可以为如order_id、content.order_id以及Request.Body.WaybillRoute.orderid等。例如,对于目标解析表达式为content.order_id,在进行报文解析时,可以在回调报文中分别找到“content”以及“order_id”,以获取“order_id”后面对应的值,得到业务标识。
本申请中,通过预先配置的解析表达式可以提取出回调报文中的业务标识,以便后续根据该业务标识查询预设缓存,得到对应的目标版本信息,进一步根据目标版本信息得到对应的机器类型。
在其中一个实施例中,如图8所示,上述的方法还可以包括:
S81、根据第三方服务器的预先设定的各回调地址,确定各回调地址对应的报文格式;
S82、确定各报文格式的嵌套层级;
S83、确定各报文格式的嵌套层级中各个层级对应的解析字段;
S84、根据各报文格式的嵌套层级中各个层级对应的解析字段以及预先设定的分隔符,配置第三方服务器的各回调地址对应的解析表达式存入预设缓存;
上述的获取预设缓存中预先为目标回调地址配置的目标解析表达式,可以包括:
从预设缓存中存储的第三方服务器的各回调地址对应的解析表达式中,获取预先为目标回调地址配置的目标解析表达式。
本申请中,上述的嵌套层级是指各种报文格式对应的报文中存在多级嵌套的层级数。例如,form-data表单由于只有一级数据,其嵌套层级即为一个层级。上述的各个层级对应的解析字段可以为用于在回调报文中定位到对应的层级的字段。上述的分隔符为用于连接各个解析字段的符号,例如,可以为点号、下划线或者其他的符号等。上述的各回调地址对应的解析表达式为由各个解析字段以及各分隔符组成的表达式。
本申请中,上述的第三方服务器针对其不同的业务类型设定有一个或多个回调地址。上述的回调地址中可以携带报文格式以及业务类型等信息。例如,上述的回调地址可以为如下具体形式:
第一种:/callback/form-data/{businessName}
第二种:/callback/json/{businessName}
第三种:/callback/xml/{businessName}
第四种:/callback/encryptionJson/{businessName}
第五种:/callback/encryptionXml/{businessName}
由上式可以看出,各种回调地址中包括三部分,第一部分为“callback”,第二部分为报文格式,第三部分为业务类型。例如,第一种回调地址中携带的信息有报文格式为“form-data”,业务类型为businessName的具体值。因此,根据各回调地址可以确定各回调地址对应的报文格式以及对应的业务类型。上述的五种回调地址分别对应五种报文格式,即form-data表单报文,json报文,xml报文,加密json报文,加密xml报文。各个第三方服务器仅涉及一种报文格式。
进一步的,上述的确定各报文格式的嵌套层级中各个层级对应的解析字段,可以包括:
根据各报文格式对应的回调地址中携带的业务类型,确定各报文格式的嵌套层级中各个层级对应的解析字段。
例如,若获取到第三方服务器的当前回调地址中携带有报文格式为json格式的报文,业务类型为下单业务,则根据该报文格式以及业务类型可以确定对应的解析字段为“content”以及“order_id”。
上述的根据各报文格式的嵌套层级中各个层级对应的解析字段以及预先设定的分隔符,配置第三方服务器的各回调地址对应的解析表达式存入预设缓存,可以包括:
通过分隔符将当前报文格式的嵌套层级中各个层级对应的对应的解析字段进行连接,得到当前报文格式对应回调地址对应的解析表达式。
本申请中,举例加密只列举了两个地址,并没有说明是哪种加密方式(RSA和SHA1是两种常见的加密算法),在实际落地时可以根据加密方式不同定义出不同的地址,对此本申请不作限定,如:
/callback/RSAEncryptionJson/{businessName}
/callback/SHA1EncryptionXml/{businessName}
本申请通过该实施方式,可以实现对解析表达式的灵活配置,当有新的第三方服务器或者新的业务类型加入,可以灵活添加新的解析表达式以实现方案的扩展。
在其中一个实施例中,如图9所示,上述的根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识,可以包括:
S91、根据目标解析表达式中的各分隔符,提取目标解析表达式中的各解析字段,得到解析字段序列;
S92、确定解析字段序列中各解析字段在回调报文中所属的层级;
S93、根据解析字段序列中各解析字段在回调报文中所属的层级从回调报文中获取解析字段序列中最后一个解析字段对应的取值,得到当前业务的业务标识。
本申请中,上述的根据目标解析表达式中的各分隔符,提取目标解析表达式中的各解析字段,得到解析字段序列,可以包括:
根据目标解析表达式中的各分隔符对目标解析表达式进行切割,得到目标解析表达式中的各解析字段,得到解析字段序列。
具体地,上述的目标解析表达式中的各解析字段用于在回调报文中定位出各个层级,以便最终定位出最后一个解析字段的取值。例如,目标解析表达式为“Request.Body.WaybillRoute.orderid”。该目标解析表达式中的分隔符为点号。根据各点号对目标解析表达式进行切割得到解析字段序列为:
“Request”、“Body”、“WaybillRoute”以及“orderid”。
进一步地,确定各个各解析字段在回调报文中所属的层级。具体地,“Request”为第一级、“Body”为第二级、“WaybillRoute”为第三级,最后一个字段“orderid”用于获取当前业务的业务标识。
上述的根据解析字段序列中各解析字段在回调报文中所属的层级从回调报文中获取解析字段序列中最后一个解析字段对应的取值,得到当前业务的业务标识,可以包括:
在回调报文中查找“Request”,进一步在“Request”所在层级中查找“Body”,进一步在“Body”所在层级中查找“WaybillRoute”,进一步在“WaybillRoute”所在层级中查找“orderid”,进一步在回调报文中查找“orderid”对应的取值,得到当前业务的业务标识。
本申请中,通过预先定义的五个过滤器分别对应解析上述的form-data、json、xml、加密json和加密xml五种报文格式,这里的过滤器用于做统一数据处理,比如获取到回调地址里第三段的业务类型,根据业务类型查询到预设缓存中预先配置的解析表达式,然后根据解析表达式对回调报文解析得到对应的业务标识,再根据业务标识查询预设缓存,得到该业务标识对应的目标版本信息,以及该目标版本信息对应的机器类型。
本申请通过该实施方式可以基于预先配置的解析表达式实现对回调报文进行解析,得到当前业务的业务标识,解析表达式可以根据不同的类型进行配置,适用于多种业务类型,方案灵活性高。
在其中一个实施例中,上述的方法还可以包括:
接收对各第三方服务器的回调地址的配置请求;
根据各第三方服务器的回调地址的配置请求为各第三方服务器配置对应的回调地址。
本申请中,上述的第三方服务器可以包括一个或者多个,例如,支付宝、顺丰以及美团等。上述的数据回调服务器可以接收运营人员的终端提交的对各第三方服务器的回调地址的配置请求,根据各第三方服务器的回调地址的配置请求为各第三方服务器配置对应的回调地址。例如,当新增第三方服务器时,运营人员需要对新增的第三方服务器配置对应的回调地址。或者,当原第三方服务器有新增业务类型时,运营人员需要为新增业务类型配置对应的回调地址,以实现方案的扩展。
在其中一个实施例中,上述的方法还可以包括:
当目标机器类型为普通机器时,将当前业务对应的业务数据发送至预先设定的普通机器处理。
本申请中,可以预先标记各数据处理机器的机器类型,并且进一步为当前应用的各版本信息配置对应的数据处理机器的机器类型。该数据处理机器可以为服务器。本申请中,可以利用注册中心(例如Nacos、Eureka)提供的元数据能力,定义一个key和对应的value,如key=version,value值为1.0.1时表示为灰度机器,value值为其余数值时是则表示普通机器。其中,注册中心可以用于微服务的管理和调度,负责存储所有微服务下的机器ip、端口以及健康状态等信息,并提供服务发现能力。本申请中的元数据可以为标明某台服务器(即上述的数据处理机器)部署代码的一些特定属性,比如A服务器属于灰度机器,B服务器属于正常机器。而元数据能力可以理解为一种数据结构定义的能力。
进一步地,从注册中心获取全量机器后,则可以通过元数据区分出灰度机器和普通机器,从而按要求进行相应转发,即将当前业务对应的业务数据转发至对应的目标灰度机器处理。其中,key和value可以用来标识机器的不同特性,比如如果需要标识机器属于不同版本,则可以定义key为version,值可以定义为1.0.0以及1.0.1等。如果需要标识机器属于不同地区,就可以定义key为region,值可以定义为guangzhou(广州)以及shenzhen(深圳)等。
在其中一个实施例中,如图10所示,上述的方法还可以包括:
S101、在对当前业务对应的业务数据发送至预先设定的灰度机器或者普通机器处理时,获取各候选机器的元数据;
S102、根据各候选机器的元数据从各候选机器中筛选出各灰度机器;
S103、当目标机器类型为灰度机器时,将当前业务对应的业务数据在筛选出的各灰度机器中轮询转发至目标灰度机器。
本申请中,上述的元数据可以包括对各候选机器的机器类型进行标记的数据,如灰度标记,该灰度标记用于表征机器类型为灰度机器。本申请在将当前业务对应的业务数据在筛选出的各灰度机器中轮询转发至目标灰度机器时,具体可以按照平均分配的策略将多个业务对应的业务数据按顺序平均分配给各灰度机器。
本申请中,采用多台候选机器做负载,在对当前业务对应的业务数据转发至灰度机器或者普通机器时,采用动态转发的方式。具体地,该动态转发的方式是通过改写网关的负载均衡策略实现的。具体而言,上述的普通机器和上述的灰度机器都是由注册中心(例如Nacos)统一管理和标记。本申请可以从注册中心获取各候选机器的元数据,通过对各候选机器的元数据进行分析,以从各候选机器中筛选出所有的灰度机器。如果上述的目标机器类型为灰度机器,则将当前业务对应的业务数据在各筛选出的灰度机器中轮询转发到目标灰度机器。如果上述的目标机器类型为普通机器,则将当前业务对应的业务数据在各筛选出的普通机器中轮询转发到目标普通机器。
本申请通过采用多台机器做负载,可以实现高可用,防止某台机器宕机后,其他机器还能继续处理业务,防止一台机器单点故障后业务就运转不了了。另外,本申请通过对元数据进行分析,筛选出候选机器中的各灰度机器,后续轮询时仅在筛选出的各灰度机器间轮询,相较于传统的对注册中心所有的机器进行轮询的方式,提升了数据转发的效率。
在其中一个实施例中,请参考图11,在图11中,包括第三方服务器111、SpringCloudGateway微服务器网关112、预设缓存113、普通机器114、灰度机器115以及数据库116。其中,第三方服务器111将回调报文发送至数据回调服务器,数据回调服务器通过SpringCloudGateway微服务器网关112对回调报文进行解析,得到当前业务对应的业务标识。数据回调服务器查询预设缓存113,得到当前业务的业务标识对应的目标版本信息,进一步根据预先为各版本信息配置的机器类型,确定当前业务是走灰度机器还是普通机器,如果确定是走灰度机器,则将当前业务的业务数据发送至对应的灰度机器115进行后续的数据处理,如果确定是走普通机器,则将当前业务的业务数据发送至对应的普通机器114进行后续的数据处理。上述的数据库116用于存储正常的业务数据,如果是订单业务,则是存储订单数据。
在其中一个实施例中,上述的业务类型还可以包括小程序消息推送类。具体地,数据回调服务器在发送微信小程序消息推送给用户后,微信小程序会通过回调地址把是否推送成功的结果反馈到数据回调服务器的回调接口,数据回调服务器可以根据是否推送成功的结果执行后续处理逻辑,如,推送失败可以发起重新推送等。在该实施例中,上述的业务标识可以为消息id。
具体地,将消息推送给用户端之后,数据回调服务器自动存储各消息id与当前应用的各版本信息的映射关系。后续根据该映射关系获取当前业务的业务标识对应的当前应用的目标版本信息,进一步确定预先为目标版本信息配置的数据处理机器的机器类型,得到目标机器类型,当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
本申请通过该实施方式可以解决小程序消息推送类的业务场景中的数据回调问题,以实现微信小程序把是否推送成功的结果反馈到数据回调服务器。
在其中一个实施例中,上述的业务类型还可以包括视频号商品审核。具体地,数据回调服务器在接入微信视频号时,需要把商品信息上报到微信服务器,微信服务器审核完成后,会通过回调地址告知数据回调服务器商品是否审核通过。在该实施例中,上述的业务标识可以为商品码。
具体地,把商品信息上报到微信服务器后,数据回调服务器自动存储各商品码与当前应用的各版本信息的映射关系。后续根据该映射关系获取当前业务的业务标识对应的当前应用的目标版本信息,进一步确定预先为目标版本信息配置的数据处理机器的机器类型,得到目标机器类型,当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
本申请通过该实施方式可以解决视频号商品审核的业务场景中的数据回调问题,以实现微信服务器告知数据回调服务器商品是否审核通过。
在一个实施例中,如图12所示,提供了一种回调数据的灰度分发装置,包括:接收模块11、提取模块12、确定模块13以及发送模块14,其中:
接收模块11,用于接收第三方服务器发送的回调报文;
提取模块12,用于提取回调报文中的当前业务的业务标识;
确定模块13,用于确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;
发送模块14,用于当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
在其中一个实施例中,上述的确定模块13可以根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息,确定预先为目标版本信息配置的数据处理机器的机器类型,得到目标机器类型。
在其中一个实施例中,上述的确定模块13可以根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的用户标识,确定预先为当前业务的业务标识对应的用户标识配置的数据处理机器的机器类型,得到目标机器类型。
在其中一个实施例中,上述的当前业务的业务标识包括当前业务的订单号,上述的回调数据的灰度分发装置还包括第一存储模块(图未示),该第一存储模块可以接收各终端发送的各业务的交易请求,各交易请求中携带有各终端上当前应用的版本信息以及各业务对应的订单号,将各业务对应的订单号与各终端上的当前应用的版本信息的映射关系存入预设缓存,上述的确定模块13还可以根据预设缓存中存储的映射关系匹配当前业务的业务标识,获取当前业务的业务标识对应的当前应用的目标版本信息。
在其中一个实施例中,上述的当前业务的业务标识包括当前业务的物流单号,上述的回调数据的灰度分发装置还包括第二存储模块(图未示),该第二存储模块可以在接收到各业务对应支付完成的通知信息时,获取各业务的物流单号,获取各业务对应的发起终端上当前应用的版本信息,将各业务的物流单号与当前应用的各版本信息的映射关系存入预设缓存中,上述的确定模块13还可以根据预设缓存中存储的映射关系匹配当前业务的业务标识,获取当前业务的业务标识对应的当前应用的目标版本信息。
在其中一个实施例中,上述的提取模块12可以获取回调报文对应的目标回调地址,获取预设缓存中预先为目标回调地址配置的目标解析表达式,根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识。
在其中一个实施例中,上述的回调数据的灰度分发装置还包括配置模块(图未示),该配置模块可以根据第三方服务器的预先设定的各回调地址,确定各回调地址对应的报文格式,确定各报文格式的嵌套层级,确定各报文格式的嵌套层级中各个层级对应的解析字段,根据各报文格式的嵌套层级中各个层级对应的解析字段以及预先设定的分隔符,配置第三方服务器的各回调地址对应的解析表达式存入预设缓存,上述的提取模块12还可以从预设缓存中存储的第三方服务器的各回调地址对应的解析表达式中,获取预先为目标回调地址配置的目标解析表达式。
在其中一个实施例中,上述的上述的提取模块12还可以根据目标解析表达式中的各分隔符,提取目标解析表达式中的各解析字段,得到解析字段序列,确定解析字段序列中各解析字段在回调报文中所属的层级,根据解析字段序列中各解析字段在回调报文中所属的层级从回调报文中获取解析字段序列中最后一个解析字段对应的取值,得到当前业务的业务标识。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储上述的回调数据的灰度分发方法运行过程中的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现编译虚拟机的资源分配方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收第三方服务器发送的回调报文;提取回调报文中的当前业务的业务标识;确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
在一个实施例中,处理器执行计算机程序实现上述的确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型步骤时,具体实现以下步骤:
根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息;
确定预先为目标版本信息配置的数据处理机器的机器类型,得到目标机器类型。
在一个实施例中,处理器执行计算机程序实现上述的确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型步骤时,具体实现以下步骤:
根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的用户标识;
确定预先为当前业务的业务标识对应的用户标识配置的数据处理机器的机器类型,得到目标机器类型。
在一个实施例中,上述的当前业务的业务标识包括当前业务的订单号,处理器执行计算机程序时具体还实现以下步骤:
接收各终端发送的各业务的交易请求,各交易请求中携带有各终端上当前应用的版本信息以及各业务对应的订单号;
将各业务对应的订单号与各终端上的当前应用的版本信息的映射关系存入预设缓存;
处理器执行计算机程序实现上述的根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息步骤时,具体实现以下步骤:
根据预设缓存中存储的映射关系匹配当前业务的业务标识,获取当前业务的业务标识对应的当前应用的目标版本信息。
在一个实施例中,上述的当前业务的业务标识包括当前业务的物流单号,处理器执行计算机程序时具体还实现以下步骤:
在接收到各业务对应支付完成的通知信息时,获取各业务的物流单号;
获取各业务对应的发起终端上当前应用的版本信息;
将各业务的物流单号与当前应用的各版本信息的映射关系存入预设缓存中;
处理器执行计算机程序实现上述的根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息步骤时,具体实现以下步骤:
根据预设缓存中存储的映射关系匹配当前业务的业务标识,获取当前业务的业务标识对应的当前应用的目标版本信息。
在一个实施例中,处理器执行计算机程序实现上述的提取回调报文中的当前业务的业务标识步骤时,具体实现以下步骤:
获取回调报文对应的目标回调地址;
获取预设缓存中预先为目标回调地址配置的目标解析表达式;
根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识。
在一个实施例中,处理器执行计算机程序时具体还实现以下步骤:
根据第三方服务器的预先设定的各回调地址,确定各回调地址对应的报文格式;
确定各报文格式的嵌套层级;
确定各报文格式的嵌套层级中各个层级对应的解析字段;
根据各报文格式的嵌套层级中各个层级对应的解析字段以及预先设定的分隔符,配置第三方服务器的各回调地址对应的解析表达式存入预设缓存;
处理器执行计算机程序实现上述的获取预设缓存中预先为目标回调地址配置的目标解析表达式步骤时,具体实现以下步骤:
从预设缓存中存储的第三方服务器的各回调地址对应的解析表达式中,获取预先为目标回调地址配置的目标解析表达式。
在一个实施例中,处理器执行计算机程序实现上述的根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识步骤时,具体实现以下步骤:
根据目标解析表达式中的各分隔符,提取目标解析表达式中的各解析字段,得到解析字段序列;
确定解析字段序列中各解析字段在回调报文中所属的层级;
根据解析字段序列中各解析字段在回调报文中所属的层级从回调报文中获取解析字段序列中最后一个解析字段对应的取值,得到当前业务的业务标识。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收第三方服务器发送的回调报文;提取回调报文中的当前业务的业务标识;确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型;当目标机器类型为灰度机器时,将当前业务对应的业务数据发送至预先设定的灰度机器处理。
在一个实施例中,计算机程序被处理器执行实现上述的确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型步骤时,具体实现以下步骤:
根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息;
确定预先为目标版本信息配置的数据处理机器的机器类型,得到目标机器类型。
在一个实施例中,计算机程序被处理器执行实现上述的确定预先为当前业务的业务标识配置的数据处理机器的目标机器类型步骤时,具体实现以下步骤:
根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的用户标识;
确定预先为当前业务的业务标识对应的用户标识配置的数据处理机器的机器类型,得到目标机器类型。
在一个实施例中,上述的当前业务的业务标识包括当前业务的订单号,计算机程序被处理器执行时具体还实现以下步骤:
接收各终端发送的各业务的交易请求,各交易请求中携带有各终端上当前应用的版本信息以及各业务对应的订单号;
将各业务对应的订单号与各终端上的当前应用的版本信息的映射关系存入预设缓存;
计算机程序被处理器执行实现上述的根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息步骤时,具体实现以下步骤:
根据预设缓存中存储的映射关系匹配当前业务的业务标识,获取当前业务的业务标识对应的当前应用的目标版本信息。
在一个实施例中,上述的当前业务的业务标识包括当前业务的物流单号,计算机程序被处理器执行时具体还实现以下步骤:
在接收到各业务对应支付完成的通知信息时,获取各业务的物流单号;
获取各业务对应的发起终端上当前应用的版本信息;
将各业务的物流单号与当前应用的各版本信息的映射关系存入预设缓存中;
计算机程序被处理器执行实现上述的根据当前业务的业务标识查询预设缓存,获取当前业务的业务标识对应的当前应用的目标版本信息步骤时,具体实现以下步骤:
根据预设缓存中存储的映射关系匹配当前业务的业务标识,获取当前业务的业务标识对应的当前应用的目标版本信息。
在一个实施例中,计算机程序被处理器执行实现上述的提取回调报文中的当前业务的业务标识步骤时,具体实现以下步骤:
获取回调报文对应的目标回调地址;
获取预设缓存中预先为目标回调地址配置的目标解析表达式;
根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识。
在一个实施例中,计算机程序被处理器执行时具体还实现以下步骤:
根据第三方服务器的预先设定的各回调地址,确定各回调地址对应的报文格式;
确定各报文格式的嵌套层级;
确定各报文格式的嵌套层级中各个层级对应的解析字段;
根据各报文格式的嵌套层级中各个层级对应的解析字段以及预先设定的分隔符,配置第三方服务器的各回调地址对应的解析表达式存入预设缓存;
计算机程序被处理器执行实现上述的获取预设缓存中预先为目标回调地址配置的目标解析表达式步骤时,具体实现以下步骤:
从预设缓存中存储的第三方服务器的各回调地址对应的解析表达式中,获取预先为目标回调地址配置的目标解析表达式。
在一个实施例中,计算机程序被处理器执行实现上述的根据目标解析表达式对回调报文进行解析,得到当前业务的业务标识步骤时,具体实现以下步骤:
根据目标解析表达式中的各分隔符,提取目标解析表达式中的各解析字段,得到解析字段序列;
确定解析字段序列中各解析字段在回调报文中所属的层级;
根据解析字段序列中各解析字段在回调报文中所属的层级从回调报文中获取解析字段序列中最后一个解析字段对应的取值,得到当前业务的业务标识。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种回调数据的灰度分发方法,其特征在于,所述方法包括:
接收第三方服务器发送的回调报文;
提取所述回调报文中的当前业务的业务标识;
确定预先为所述当前业务的业务标识配置的数据处理机器的目标机器类型;
当所述目标机器类型为灰度机器时,将所述当前业务对应的业务数据发送至预先设定的灰度机器处理。
2.根据权利要求1所述的方法,其特征在于,所述确定预先为所述当前业务的业务标识配置的数据处理机器的目标机器类型,包括:
根据所述当前业务的业务标识查询预设缓存,获取所述当前业务的业务标识对应的当前应用的目标版本信息;
确定预先为所述目标版本信息配置的数据处理机器的机器类型,得到所述目标机器类型。
3.根据权利要求1所述的方法,其特征在于,所述确定预先为所述当前业务的业务标识配置的数据处理机器的目标机器类型,包括:
根据所述当前业务的业务标识查询预设缓存,获取所述当前业务的业务标识对应的用户标识;
确定预先为所述当前业务的业务标识对应的用户标识配置的数据处理机器的机器类型,得到所述目标机器类型。
4.根据权利要求2所述的方法,其特征在于,所述当前业务的业务标识包括所述当前业务的订单号,所述方法还包括:
接收各终端发送的各业务的交易请求,各所述交易请求中携带有各所述终端上当前应用的版本信息以及各业务对应的订单号;
将各业务对应的订单号与各所述终端上的当前应用的版本信息的映射关系存入预设缓存;
所述根据所述当前业务的业务标识查询预设缓存,获取所述当前业务的业务标识对应的当前应用的目标版本信息,包括:
根据所述预设缓存中存储的所述映射关系匹配所述当前业务的业务标识,获取所述当前业务的业务标识对应的当前应用的目标版本信息。
5.根据权利要求2所述的方法,其特征在于,所述当前业务的业务标识包括所述当前业务的物流单号,所述方法还包括:
在接收到各业务对应支付完成的通知信息时,获取各所述业务的物流单号;
获取各所述业务对应的发起终端上当前应用的版本信息;
将各所述业务的物流单号与当前应用的各版本信息的映射关系存入预设缓存中;
所述根据所述当前业务的业务标识查询预设缓存,获取所述当前业务的业务标识对应的当前应用的目标版本信息,包括:
根据所述预设缓存中存储的所述映射关系匹配所述当前业务的业务标识,获取所述当前业务的业务标识对应的当前应用的目标版本信息。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述提取所述回调报文中的当前业务的业务标识,包括:
获取所述回调报文对应的目标回调地址;
获取所述预设缓存中预先为所述目标回调地址配置的目标解析表达式;
根据所述目标解析表达式对所述回调报文进行解析,得到所述当前业务的业务标识。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述第三方服务器的预先设定的各回调地址,确定各所述回调地址对应的报文格式;
确定各所述报文格式的嵌套层级;
确定各所述报文格式的嵌套层级中各个层级对应的解析字段;
根据各所述报文格式的嵌套层级中各个层级对应的解析字段以及预先设定的分隔符,配置所述第三方服务器的各回调地址对应的解析表达式存入所述预设缓存;
所述获取所述预设缓存中预先为所述目标回调地址配置的目标解析表达式,包括:
从所述预设缓存中存储的所述第三方服务器的各回调地址对应的解析表达式中,获取预先为所述目标回调地址配置的目标解析表达式。
8.根据权利要求6所述的方法,其特征在于,所述根据所述目标解析表达式对所述回调报文进行解析,得到所述当前业务的业务标识,包括:
根据所述目标解析表达式中的各分隔符,提取所述目标解析表达式中的各解析字段,得到解析字段序列;
确定所述解析字段序列中各解析字段在所述回调报文中所属的层级;
根据所述解析字段序列中各解析字段在所述回调报文中所属的层级从所述回调报文中获取所述解析字段序列中最后一个解析字段对应的取值,得到所述当前业务的业务标识。
9.一种回调数据的灰度分发装置,其特征在于,所述装置包括:
接收模块,用于接收第三方服务器发送的回调报文;
提取模块,用于提取所述回调报文中的当前业务的业务标识;
确定模块,用于确定预先为所述当前业务的业务标识配置的数据处理机器的目标机器类型;
发送模块,用于当所述目标机器类型为灰度机器时,将所述当前业务对应的业务数据发送至预先设定的灰度机器处理。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210782655.3A CN115016821A (zh) | 2022-06-27 | 2022-06-27 | 回调数据的灰度分发方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210782655.3A CN115016821A (zh) | 2022-06-27 | 2022-06-27 | 回调数据的灰度分发方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115016821A true CN115016821A (zh) | 2022-09-06 |
Family
ID=83078793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210782655.3A Pending CN115016821A (zh) | 2022-06-27 | 2022-06-27 | 回调数据的灰度分发方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115016821A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116582872A (zh) * | 2023-07-07 | 2023-08-11 | 北京集度科技有限公司 | 数据发送装置、方法、数据接收装置及存储介质 |
-
2022
- 2022-06-27 CN CN202210782655.3A patent/CN115016821A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116582872A (zh) * | 2023-07-07 | 2023-08-11 | 北京集度科技有限公司 | 数据发送装置、方法、数据接收装置及存储介质 |
CN116582872B (zh) * | 2023-07-07 | 2023-09-15 | 北京集度科技有限公司 | 数据发送装置、方法、数据接收装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11394805B1 (en) | Automatic discovery of API information | |
CN106878045B (zh) | 业务调用方法及装置 | |
CN110688598B (zh) | 业务参数采集方法、装置、计算机设备和存储介质 | |
CN111723313A (zh) | 页面跳转的处理方法、装置、设备及存储介质 | |
CN101711470A (zh) | 一种用于在对等网络上创建共享信息列表的系统和方法 | |
KR102417742B1 (ko) | Api 데이터 수집시스템 및 그에 관한 방법 | |
CN110780870B (zh) | 一种业务执行方法、装置、设备及存储介质 | |
CN110599142B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN109151025B (zh) | 基于url的负载均衡方法、装置、计算机存储介质及设备 | |
CN110119292A (zh) | 系统运行参数查询方法、匹配方法、装置及节点设备 | |
CN102932391A (zh) | P2sp系统中处理数据的方法、装置和系统 | |
CN112463772B (zh) | 日志处理方法、装置、日志服务器及存储介质 | |
CN112543222B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN113641762A (zh) | 信息推送方法、装置、系统和计算机可读存续装置 | |
US20090165011A1 (en) | Resource management method, information processing system, information processing apparatus, and program | |
CN115016821A (zh) | 回调数据的灰度分发方法、装置、计算机设备和存储介质 | |
CN112017007A (zh) | 用户行为数据的处理方法及装置、计算机设备、存储介质 | |
CN114827239A (zh) | 基于8583协议的双向会话保持方法和装置 | |
US20060150196A1 (en) | Processing messages in a message queueing system | |
CN113177179B (zh) | 数据请求连接管理方法、装置、设备及存储介质 | |
CN114401319A (zh) | 一种请求处理方法、装置、服务器及存储介质 | |
CN113360210A (zh) | 数据对账方法、装置、计算机设备和存储介质 | |
CN111290804B (zh) | 一种业务配置系统以及业务配置方法、装置和配置服务器 | |
KR20190021848A (ko) | 서버 모니터링 방법과 이를 수행하기 위한 장치 및 시스템 | |
CN109451047B (zh) | 监控告警系统的数据传送方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |