发明内容
本申请提出一种业务调用方法,包括:
接收到客户端发出的业务调用请求;所述业务调用请求携带用户标识;
确定与所述用户标识匹配的业务调用类型;其中,所述业务调用类型包括模拟调用业务和在线调用业务;
如果与所述用户标识匹配的业务调用类型为模拟调用业务,则获取模拟业务配置信息,并基于所述模拟业务配置信息响应所述远程调用请求;以及,如果与所述用户标识匹配的业务调用类型为在线调用业务,则获取在线业务配置信息,并基于所述在线业务配置信息响应所述远程调用请求;
可选的,所述模拟业务配置信息和所述在线业务配置信息预先进行了配置隔离。
可选的,所述确定与所述用户标识匹配的业务调用类型,包括:
判断所述用户标识是否命中预设的模拟业务白名单;
如果所述用户标识命中所述模拟业务白名单时,确定与所述用户标识匹配的业务调用类型为模拟调用业务;以及,如果所述用户标识未命中所述模拟业务白名单时,则确定与所述用户标识匹配的业务调用类型为在线调用业务。
可选的,所述确定与所述用户标识匹配的业务调用类型之前,还包括:
判断接收到的所述业务调用请求是否满足预设的业务调用条件;
如果所述业务调用请求满足预设的业务调用条件,则进一步确定与所述用户标识匹配的业务调用类型。
可选的,还包括:
基于用户的更新操作对所述模拟业务配置信息和所述在线业务配置信息进行动态更新;以及,
基于用户的更新操作对所述模拟业务白名单进行动态更新。
本申请还提出一种业务调用装置,包括:
接收模块,接收到客户端发出的业务调用请求;所述业务调用请求携带用户标识;
确定模块,确定与所述用户标识匹配的业务调用类型;其中,所述业务调用类型包括模拟调用业务和在线调用业务;
响应模块,如果与所述用户标识匹配的业务调用类型为模拟调用业务,则获取模拟业务配置信息,并基于所述模拟业务配置信息响应所述远程调用请求;以及,如果与所述用户标识匹配的业务调用类型为在线调用业务,则获取在线业务配置信息,并基于所述在线业务配置信息响应所述远程调用请求;
可选的,所述模拟业务配置信息和所述在线业务配置信息预先进行了配置隔离。
可选的,所述确定模块:
判断所述用户标识是否命中预设的模拟业务白名单;
如果所述用户标识命中所述模拟业务白名单时,确定与所述用户标识匹配的业务调用类型为模拟调用业务;以及,如果所述用户标识未命中所述模拟业务白名单时,则确定与所述用户标识匹配的业务调用类型为在线调用业务。
可选的,还包括:
判断模块,在所述确定模块确定与所述用户标识匹配的业务调用类型之前,判断接收到的所述业务调用请求是否满足预设的业务调用条件;如果所述业务调用请求满足预设的业务调用条件,则由所述确定模块进一步确定与所述用户标识匹配的业务调用类型。
可选的,还包括:
更新模块,基于用户的更新操作对所述模拟业务配置信息和所述在线业务配置信息进行动态更新;以及,基于用户的更新操作对所述模拟业务白名单进行动态更新。
本申请中,通过为模拟调用业务和在线调用业务设置不同的业务配置信息,当在接收到客户端发出的业务调用请求后,可以基于业务调用请求中的用户标识来确定业务调用类型,如果业务调用类型为模拟调用业务,则可以获取模拟业务配置信息,并基于所述模拟业务配置信息响应所述远程调用请求;如果业务调用类型为在线调用业务,则可以获取在线业务配置信息,并基于所述在线业务配置信息响应所述远程调用请求,实现了可以利用不同的业务配置信息对在线调用业务和模拟调用业务进行隔离,从而在利用在线业务真实的业务环境进行业务调用模拟时,不会对在线调用业务造成影响,可以提升业务系统的稳定性。
具体实施方式
在相关技术中,为了确保在线业务的可靠性,通常需要在业务上线之前,利用在线业务真实的业务环境,来执行业务模拟调用。
例如,在一些线上运营业务(比如线上促销业务或者线上抽奖业务)的应用场景中,线上运营业务在上线之前,可以在线上运营业务真实的业务环境中,进行业务模拟调用,以对线上运营业务整体的运行状况进行测试和评估,从及时的对线上运营业务可能发生的潜在业务异常进行发现和修复,从而可以最大程度的保障线上运营业务在上线后的可靠性。
然而,在相关技术中,在进行业务模拟调用时,由于业务模拟调用是基于在线业务真实的业务环境来实施的,模拟调用业务与在线调用业务通常共用同一台业务配置,因而在执行业务模拟调用时,模拟调用业务可能会占用在线业务的业务资源,对在线业务的稳定性造成影响。
有鉴于此,本申请提出一种业务调用方法,通过为模拟调用业务和在线调用业务设置不同的业务配置信息,当在接收到客户端发出的业务调用请求后,可以基于业务调用请求中的用户标识来确定业务调用类型,如果业务调用类型为模拟调用业务,则可以获取模拟业务配置信息,并基于所述模拟业务配置信息响应所述远程调用请求;如果业务调用类型为在线调用业务,则可以获取在线业务配置信息,并基于所述在线业务配置信息响应所述远程调用请求,实现了可以利用不同的业务配置信息对在线调用业务和模拟调用业务进行隔离,从而在利用在线业务真实的业务环境进行业务调用模拟时,不会对在线调用业务造成影响,可以提升业务的稳定性。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的业务调用方法,应用于业务服务端,所述方法执行以下步骤:
步骤101,接收到客户端发出的业务调用请求;所述业务调用请求携带用户标识;
步骤102,确定与所述用户标识匹配的业务调用类型;其中,所述业务调用类型包括模拟调用业务和在线调用业务;
步骤103,如果与所述用户标识匹配的业务调用类型为模拟调用业务,则获取模拟业务配置信息,并基于所述模拟业务配置信息响应所述远程调用请求;以及,如果与所述用户标识匹配的业务调用类型为在线调用业务,则获取在线业务配置信息,并基于所述在线业务配置信息响应所述远程调用请求。
上述客户端,可以是用于发起远程业务调用的客户端软件;例如,APP。用户可以通过在上述客户端中执行特定的业务调用操作,来触发客户端向上述业务服务端发送业务调用请求;例如,上述特定的业务调用操作,可以是针对上述客户端的用户界面中提供的预设按钮进行频繁的点击操作(比如支付宝APP中的咻一咻)。
上述业务服务端,可以是用于响应客户端发出的业务调用请求的服务器或者服务器集群。
其中,在实际应用中,在一些用户数量级较大的业务场景中,为了应对大规模的业务调用,可以通过部署分布式业务平台,来处理和响应用户侧客户端发出的业务调用请求。而在这种场景下,上述业务服务端则可以作为核心业务节点,部署于上述分布式业务平台中。
例如,以阿里集团基于支付应用的大规模线上运营业务(比如线上抽奖业务)为例,上述客户端可以是支付宝APP,上述分布式业务平台可以是分布式的云计算平台;而上述业务服务端,则可以是上述分布式的云计算平台中,用于响应支付宝APP发出的远程业务调用请求的核心业务节点(比如抽奖服务器)。
请参见图2,图2为本例示出的一种分布式业务平台的架构图。
如图2所示,该分布式业务平台包括配置管理服务端、业务服务端、网关以及分布式数据库等业务节点。
其中:
上述业务服务端,为该分布式业务平台中的核心业务节点,用于响应客户端发出的业务调用请求。
上述配置管理服务端,用于对运营人员基于业务需求配置的业务配置信息进行集中管理。例如,在实际应用中,上述配置管理服务端可以是DRM(Dynamic Resourcemanagement,动态资源管理)服务器,或者DRM服务器集群。
上述分布式数据库,用于与用户侧的客户端进行对接,将获取到的来自用户侧的客户端发出的请求消息,在数据库中进行保存;以及,从接收到的请求消息中识别出需要投递至上述业务服务端进行响应的业务调用请求,然后将业务调用请求返回至上述网关。例如,在实际应用中,上述分布式数据库可以是基于Spanner框架的存储服务器,或者存储服务器集群。
上述网关,用于与上述分布式数据库进行对接,接收上述分布式数据库返回的业务调用请求;以及,基于预配置的业务调用条件,将满足该业务调用条件的业务调用请求,返回至上述业务服务端,由上述业务服务端进行业务调用响应。
以下结合图2示出的分布式业务平台的架构,对本申请的技术方案进行详细描述。
其中,需要说明的是,图2示出的上述分布式业务平台的架构,仅为示例性的。在实际应用中,上述分布式业务平台的架构中所包含的业务节点的数量,以及业务节点的种类,均可以基于实际的业务需求进行合理部署,在本申请中不进行特别限定。
在本例中,上述分布式业务平台可以面向运营人员提供一配置页面,运营人员可以通过该配置页面,为上述业务服务端手动配置相应的业务配置信息。
其中,为了在利用在线业务真实的业务环境进行业务调用模拟时,不会对在线调用业务造成影响,运营人员在配置业务配置信息时,可以针对在线调用业务和模拟调用业务,分配配置不同的业务配置信息,通过为在线调用业务和模拟调用业务分别配置不同的业务配置信息,实现对在线调用业务和模拟调用业务进行业务隔离。比如,可以针对在线调用业务,配置相应的在线业务配置信息;针对模拟调用业务,配置相应的模拟业务配置信息。
当运营人员通过上述配置页面,分别为在线调用业务和模拟调用业务配置了相应的业务配置信息后,上述配置页面可以在业务前端,对配置完成的在线业务配置信息以及模拟业务配置信息进行缓存,然后通过缓存推送机制,将配置完成的在线业务配置信息以及模拟业务配置信息,推送至上述配置管理服务端,由上述配置管理服务端进行集中管理。
其中,在通过缓存推送机制,向上述配置管理服务端推送业务配置信息时,可以采用固定的推送格式进行推送;例如,可以采用JSON格式将业务配置信息以大字段的形式,推送至上述配置管理服务端。
在本例中,上述配置管理服务端在针对上述配置页面推送至本地的业务配置信息进行集中管理时,可以针对上述在线业务配置信息以及模拟业务配置信息进行配置隔离。
例如,在示出的一种实现方式中,上述配置管理服务端,可以为上述在线业务配置信息以及模拟业务配置信息分别分配独立的存储空间,对上述在线业务配置信息以及模拟业务配置信息进行隔离存储,并提供不同的访问接口。
通过这种方式,可以实现在线调用业务以及模拟调用业务,在业务层面彻底的隔离,从而即便在相同的业务环境中进行实施,也不会互相影响。
当运营人员分别为在线调用业务和模拟调用业务配置了相应的业务配置信息,并将配置完成的在线业务配置信息以及模拟业务配置信息推送至上述配置管理服务器后,后续用户通过客户端发出的业务调用请求在投递至上述业务服务端时,上述业务服务端可以基于业务调用请求对应的业务调用类型,从上述配置管理服务端动态的读取业务配置信息,来完成相应的业务调用。
在本例中,用户可以通过在上述客户端中执行特定的业务调用操作,来触发客户端向上述业务服务端发出业务调用请求;比如,该业务调用请求可以是RPC(RemoteProcedure Call Protocol,远程过程调用协议)请求。
例如,在示出的一种实现方式中,上述特定的业务调用操作,可以是针对上述客户端的用户界面中提供的预设按钮进行频繁的点击操作;比如,支付宝APP中的咻一咻。
其中,在上述业务调用请求中,可以携带用户标识;比如用户的UID;上述客户端发出的业务调用请求,首先将会被投递至与上述客户端进行对接的上述分布式数据库进行存储。
上述分布式数据库,在收到来自众多的用户侧客户端投递的请求消息后,可以从接收到的请求消息中,识别出需要投递至上述业务服务端进行响应的业务调用请求;
例如,在示出的一种实现方式中,上述分布式数据库可以基于请求消息的调用接口,来识别出需要投递至上述业务服务端的业务调用请求。
在本例中,上述分布式数据库在从接收到的请求消息中,识别出需要投递至业务服务端的业务调用请求后,可以继续将识别出的业务调用请求投递至上述网关。
在本例中,运营人员还可以通过上述配置页面,配置业务调用条件;当配置完成后,上述配置页面可以采用相同的缓存推送机制,将配置完成的该业务调用条件推送至上述配置管理服务端,并有配置管理服务器继续推送至上述网关进行存储。上述网关可以通过该预配置的业务调用条件,对上述分布式数据库投递至本地的业务调用请求进行筛选,仅将符合上述业务调用条件的业务调用请求,继续投递至上述业务服务端。
其中,上述业务调用条件的具体内容,在本例中不进行特别限定,运营人员可以基于实际的业务需求进行自定义配置;例如,在诸如线上抽奖等线上运营业务的应用场景中,网关上预配置的业务调用条件,可以是运营人员预配置的奖品发放条件;比如,抽中奖品的概率、对抽奖用户的特殊要求,等等。
在本例中,当上述业务服务端接收来自上述网关的业务调用请求后,此时可以确定该业务调用请求对应的业务调用类型,然后基于确定的业务调用类型,从上述配置管理服务端动态的读取相应的业务配置信息,来完成响应该业务调用请求完成业务调用。
在示出的一种实施方式中,运营人员还可以通过上述配置页面,配置模拟业务白名单,其中在该模拟业务白名单中,可以预存储若干发起模拟调用业务的用户标识。当运营人员在上述配置页面中配置了上述模拟业务白名单后,上述配置页面可以采用相同的缓存推送机制,将配置完成的该模拟业务白名单推送至上述配置管理服务端进行集中管理。
当上述业务服务端在确定与上述业务调用请求对应的业务调用类型时,可以提取该业务调用请求中的用户标识,将该用户标识与上述模拟业务白名单中与存储的用户标识逐一进行匹配;
一方面,如果该业务调用请求中的用户标识,命中了上述模拟业务白名单中的用户标识后,表明发起该业务调用请求的用户为模拟调用业务的发起者,此时该业务调用请求对应的业务调用类型为模拟调用业务。
在这种情况下,上述业务服务端可以基于上述配置管理服务端提供的访问接口,从上述配置管理服务端获取模拟业务配置信息,然后基于该模拟业务配置信息来响应该业务调用请求。
另一方面,如果该业务调用请求中的用户标识,未命中上述模拟业务白名单中的用户标识,表明发起该业务调用请求的用户为在线调用业务的发起者,此时该业务调用请求对应的业务调用类型为在线调用业务。
在这种情况下,上述业务服务端可以基于上述配置管理服务端提供的访问接口,从上述配置管理服务端获取在线业务配置信息,然后基于该在线业务配置信息来响应该业务调用请求。
可见,通过这种方式,通过为在线调用业务和模拟调用业务配置不同的业务配置信息,并基于业务调用请求对应的业务调用类型,动态的获取相应的业务配置信息,使得模拟调用业务和在线业务调用,可以同时利用在线业务真实的业务环境进行实施,而不会互相造成影响,从而可以提升业务系统的稳定性。
另外,需要说明的是,在本例中,运营人员还可以通过在上述配置页面执行相应的更新操作,对已配置完成的模拟业务配置信息、在线业务配置信息,以及上述模拟业务白名单进行动态更新。
例如,运营人员可以通过上述业务配置页面,针对已配置完成的业务配置信息的执行修改操作,或者添加新的业务配置信息的操作;以及,针对已配置完成的模拟业务白名单,执行修改操作,或者在模拟业务白名单中添加新的模拟业务用户标识的操作。
通过这种方式,运营人员可以通过上述配置页面,对已配置完成的模拟业务配置信息、在线业务配置信息,以及上述模拟业务白名单,进行动态更新,从而可以充分适应被调用业务的变化,提升业务的灵活性。
通过以上实施例可知,本申请通过为模拟调用业务和在线调用业务设置不同的业务配置信息,当在接收到客户端发出的业务调用请求后,可以基于业务调用请求中的用户标识来确定业务调用类型,如果业务调用类型为模拟调用业务,则可以获取模拟业务配置信息,并基于所述模拟业务配置信息响应所述远程调用请求;如果业务调用类型为在线调用业务,则可以获取在线业务配置信息,并基于所述在线业务配置信息响应所述远程调用请求,实现了可以利用不同的业务配置信息对在线调用业务和模拟调用业务进行隔离,从而在利用在线业务真实的业务环境进行业务调用模拟时,不会对在线调用业务造成影响,可以提升业务的稳定性。
以下结合具体的应用场景对以上实施例中的技术方案进行详述。
在本例中,将结合线上抽奖的大规模运营业务的应用场景,对线上抽奖的大规模运营业务的业务调用过程进行详细说明。
需要指出的时,以线上抽奖的大规模运营业务的应用场景为例,仅为示例性的,显然本申请中记载的技术方案,也可以应用到其它类似的业务调用场景,在本例中将不再一一列举。
请参见图3,图3为本例示出的一种基于大规模运营业务的分布式业务平台的架构图。
如图3所示,该分布式业务平台包括DRM服务端、抽奖服务端(对应于图2中示出的业务服务端)、发奖服务端、网关以及Spanner服务端(对应于图2中示出的分布式数据库)等业务节点。
在本例中,在初始状态下,运营人员可以在该分布式业务平台提供的配置页面,分别配置模拟抽奖配置信息,和在线抽奖配置信息。
其中,模拟抽奖配置信息用于在该在线抽奖的运营业务上线前,响应运营人员通过前端的客户端触发的业务调用请求。而上述在线抽奖配置信息,则用于在该在线抽奖的运营业务上线后,响应普通用户通过前端的客户端触发的业务调用请求。上述模拟抽奖配置信息,和在线抽奖配置信息中,可以包括抽奖的开始时间、结束时间、奖品类型、奖品数量、以及奖品的抽中概率等配置信息。
当上述模拟抽奖配置信息,和在线抽奖配置信息配置完成后,上述前端页面可以对配置完成的配置信息进行缓存,然后通过缓存推送机制,推送至上DRM服务端进行集中管理。
另外,运营人员除了可以在上述配置页面,配置述模拟抽奖配置信息,和在线抽奖配置信息以外,还可以通过上述配置页面来配置抽奖模拟白名单(对应于上述业务模拟白名单),以及抽奖条件(对应于上述业务调用条件)。对于配置完成的抽奖模拟白名单以及抽奖条件,可以通过缓存推送机制推送至DRM服务端,其中的抽奖条件还可以由DRM服务端继续推送至上述网关进行存储。
一方面,当运营人员在上述在线抽奖的运营业务上线前,通过对该运营业务进行业务调用模拟,来进行抽奖模拟测试时,可以通过在上述客户端上执行特定的操作,来触发上述客户端向上述抽奖服务端发送用于抽奖的RPC请求。在该RPC请求中将携带用户的UID。
该RPC请求首先会被投递至上述Spanner服务端,上述Spanner服务端在从而接收到的来自用户侧的客户端的请求消息中,识别出该RPC请求后,可以将该RPC请求继续投递至上述网关。
上述网关在收到Spanner服务端投递的RPC请求后,可以基于预配置的抽奖条件,确定该RPC请求是否满足抽奖条件;如果该RPC请求满足抽奖条件,则网关可以将该RPC请求继续投递至抽奖服务器。
抽奖服务端在收到网关投递的RPC请求时,可以提取该RPC请求中携带的UID,然后将该RPC请求中携带的UID与上述抽奖模拟白名单中保存的发起抽奖模拟的运营人员的UID进行逐一匹配。
如果该RPC请求中携带的UID命中该抽奖模拟白名单中的UID,表明该RPC请求为运营人员发起的用于抽奖模拟的测试请求,在这种情况下,抽奖服务器可以从DRM服务器上获取模拟抽奖配置信息,来响应该RPC请求,以完成抽奖模拟测试,然后通过发奖服务器完成发奖。
另一方面,当上述在线抽奖的运营业务上线后,此时普通用户可以通过客户端来正常的参与抽奖,可以通过在上述客户端上执行特定的操作,来触发上述客户端向上述抽奖服务端发送用于抽奖的RPC请求。
在这种情况下,如果该RPC请求通过Spanner服务端以及网关,被成功投递到抽奖服务端,抽奖服务端可以提取该RPC请求中携带的UID,然后将该RPC请求中携带的UID与上述抽奖模拟白名单中保存的发起抽奖模拟的运营人员的UID进行逐一匹配。
如果该RPC请求中携带的UID未命中该抽奖模拟白名单中的UID,表明该RPC请求为普通用户发起的用于抽奖的请求,在这种情况下,抽奖服务器可以从DRM服务器上获取在线抽奖配置信息,来响应该RPC请求,以完成抽奖,然后通过发奖服务器完成发奖。
可见,通过这种方式,可以在同一个线上业务环境的基础上,动态的对在线抽奖和模拟抽奖的配置信息进行隔离,可以避免模拟抽奖对线上抽奖造成影响,提升系统的稳定性。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图4,本申请提出一种业务调用装置40,所述装置40应用于业务服务端;请参见图5,作为承载所述业务调用装置40的业务服务端所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述业务调用装置40通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置40包括:
接收模块401,接收到客户端发出的业务调用请求;所述业务调用请求携带用户标识;
确定模块402,确定与所述用户标识匹配的业务调用类型;其中,所述业务调用类型包括模拟调用业务和在线调用业务;
响应模块403,如果与所述用户标识匹配的业务调用类型为模拟调用业务,则获取模拟业务配置信息,并基于所述模拟业务配置信息响应所述远程调用请求;以及,如果与所述用户标识匹配的业务调用类型为在线调用业务,则获取在线业务配置信息,并基于所述在线业务配置信息响应所述远程调用请求;
在本例中,所述模拟业务配置信息和所述在线业务配置信息预先进行了配置隔离。
在本例中,所述确定模块402:
判断所述用户标识是否命中预设的模拟业务白名单;
如果所述用户标识命中所述模拟业务白名单时,确定与所述用户标识匹配的业务调用类型为模拟调用业务;以及,如果所述用户标识未命中所述模拟业务白名单时,则确定与所述用户标识匹配的业务调用类型为在线调用业务。
在本例中,还包括:
判断模块404,在所述确定模块402确定与所述用户标识匹配的业务调用类型之前,判断接收到的所述业务调用请求是否满足预设的业务调用条件;如果所述业务调用请求满足预设的业务调用条件,则由所述确定模块402进一步确定与所述用户标识匹配的业务调用类型。
在本例中,还包括:
更新模块405,基于用户的更新操作对所述模拟业务配置信息和所述在线业务配置信息进行动态更新;以及,基于用户的更新操作对所述模拟业务白名单进行动态更新。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。