一种用于多活场景的资源加锁方法、装置及系统制造方法及图纸

技术编号:21095967 阅读:27 留言:0更新日期:2019-05-11 12:26
本发明专利技术实施例公开了一种用于多活场景的资源加锁方法、装置及系统,涉及互联网技术领域,能够降低将非多活场景的业务系统改造成支持多活场景的业务系统的改造成本。本发明专利技术包括:接收服务入口的访问,并确定发出访问的应用集群,其中,在主机房和每一个子机房中,分别部署至少一个应用集群;从主机房的redis集群中获取Spring容器,并从Spring容器中确定代理对象,所述代理对象包括预设的业务资源;获取所确定的代理对象的锁执行器,并通过所述锁执行器对所确定的代理对象加锁;接收到所述应用集群发送的解锁通知后,对被加锁的代理对象进行解锁。本发明专利技术适用于多活场景下对唯一性的竞争资源的锁定。

【技术实现步骤摘要】
一种用于多活场景的资源加锁方法、装置及系统
本专利技术涉及互联网
,尤其涉及一种用于多活场景的资源加锁方法、装置及系统。
技术介绍
规模越大的互联网公司,就需要建设愈发强大的系统来支撑其日常经营的业务,而机房维护也成为大型互联网公司攸关生死的工作之一。针对不断发生的灾难事故和机房故障,多活体系下的系统配置策略,已成为大型互联网公司必须要实施的灾备体系建设。但多活体系下,各数据中心的分布式锁中间件服务之间,一般无法共用网络。因此在多活体系下,多机房中心之间,如何获取系统的唯一性资源,成了一大难点。并且,将非多活场景的业务系统改造成支持多活场景的业务系统,也需要进行大量代码的重构工作,尤其是对于系统的唯一性资源的加锁规则的代码编写,这部分工作即复杂又容易出现多机房中心之间的耦合问题,导致业务改造的人力成本和风险一直居高不下。
技术实现思路
本专利技术的实施例提供一种用于多活场景的资源加锁方法、装置及系统,能够降低将非多活场景的业务系统改造成支持多活场景的业务系统的改造成本。为达到上述目的,本专利技术的实施例采用如下技术方案:一种用于多活场景的资源加锁系统,所述系统划分为主机房设备和子机房设备;所述主机房设备包括了所述主机房中的至少一个应用集群、所述主机房中的redis集群和所述主机房的Rsf服务中心;所述子机房设备包括了所述子机房中的至少一个应用集群和所述子机房的Rsf服务中心;所述子机房中的至少一个应用集群,用于通过所述子机房的Rsf服务中心作为rsf服务路由,向所述主机房发出访问请求;所述主机房的Rsf服务中心,用于接收所述rsf服务路由发送的访问请求;所述主机房中的至少一个应用集群,用于直接向所述redis集群发出所述访问请求;所述主机房中的redis集群,用于根据接收到的访问请求提供Spring容器,所述Spring容器中记录了代理对象,所述代理对象包括预设的业务资源;所述主机房的Rsf服务中心,用于通过所述代理对象的锁执行器对所确定的代理对象加锁,并接收到所述应用集群发送的解锁通知后,对被加锁的代理对象进行解锁;其中,所述访问请求用于请求获取锁服务,所述Spring容器中的代理对象与所述访问请求指向的代理对象相互对应。在主机房,接收服务入口的访问,并确定发出访问的应用集群,其中,在主机房和每一个子机房中,分别部署至少一个应用集群;从主机房的redis集群中获取Spring容器,并从Spring容器中确定代理对象,所述代理对象包括预设的业务资源;获取所确定的代理对象的锁执行器,并通过所述锁执行器对所确定的代理对象加锁;接收到所述应用集群发送的解锁通知后,对被加锁的代理对象进行解锁。本实施例旨在提供一种多活场景下对系统唯一资源进行加锁处理。将系统业务与锁管理业务分离,开放接口实现rsf的跨机房锁管理。对竞争性的资源,比如分布式系统中的业务系统,具体业务场景为利用手机号创建会员时的,很多业务都需要利用手机号,因此一个业务改造时需要对手机号进行加锁,进行锁定管理,不同的机房中,如果需要对同一个资源进行加锁,通过主机房进行加锁。通过本实施例的方案,简化了重复加锁代码,防止错误的使用分布式锁造成的业务异常,业务方更多的将精力放在发掘业务本身。并且这种加锁方式对于系统低侵入,无需修改原业务逻辑,从而最大程度降低将非多活场景的业务系统改造成支持多活场景的业务系统的改造成本。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例提供的一种系统架构实例的示意图;图2为本专利技术实施例提供的方法流程示意图;图3、4、5、6为本专利技术实施例提供的具体实例的流程示意图;图7为本专利技术实施例提供的装置结构示意图。具体实施方式为使本领域技术人员更好地理解本专利技术的技术方案,下面结合附图和具体实施方式对本专利技术作进一步详细描述。下文中将详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本专利技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。本实施例中的方法流程,具体可以在一种如图1所示的用于多活场景的资源加锁系统上执行,所述系统主要部署在分布式场景中,按照地理位置,具体可以划分为主机房和子机房,按照部署机房的划分,可以将系统中的各个设备划分为主机房设备和子机房设备。其中,所述主机房设备包括了所述主机房中的至少一个应用集群、所述主机房中的redis集群和所述主机房的Rsf服务中心。所述子机房设备包括了所述子机房中的至少一个应用集群和所述子机房的Rsf服务中心。应用集群具体实现为由多台服务器设备组成的服务器集群,在实际应用中,应用集群主要作为运行业务系统的硬件设备。redis集群和Rsf服务中心也都可以实现为一台现有市面上能够采购到的服务器设备,或者是实现为由多台服务器设备组成的集群系统,redis集群和Rsf(远程服务框架)服务中心的架设,可以基于目前已公开并被广泛使用的技术(例如:苏宁远程服务框架(RSF),用于解决系统间的服务调用问题,提供一种透明的、高性能的RPC服务调用方案,可以实现每天的服务调用次数在200亿左右,是被使用最广泛的技术组件),本实施例中不再赘述。本专利技术实施例提供一种用于多活场景的资源加锁方法,如图2所示,包括:S101、接收服务入口的访问,并确定发出访问的应用集群。其中,在主机房和每一个子机房中,分别部署至少一个应用集群。在本实施例中,如图1所示的,服务入口可以理解为获取锁服务的入口,子机房的应用集群通过子机房的Rsf服务中心路由(routing,是指分组从源到目的地时,决定端到端路径的网络范围的进程)主机房,从而接入服务入口。不论是主机房中的应用集群还是子机房中的应用集群,都可以向主机房中的redis集群发送访问请求,访问请求用于请求获取锁服务,所述Spring容器中的代理对象与所述访问请求指向的代理对象相互对应。S102、从主机房的redis集群中获取Spr本文档来自技高网
...

【技术保护点】
1.一种用于多活场景的资源加锁方法,其特征在于,包括:接收服务入口的访问,并确定发出访问的应用集群,其中,在主机房和每一个子机房中,分别部署至少一个应用集群;从主机房的redis集群中获取Spring容器,并从Spring容器中确定代理对象,所述代理对象包括预设的业务资源;获取所确定的代理对象的锁执行器,并通过所述锁执行器对所确定的代理对象加锁;接收到所述应用集群发送的解锁通知后,对被加锁的代理对象进行解锁。

【技术特征摘要】
1.一种用于多活场景的资源加锁方法,其特征在于,包括:接收服务入口的访问,并确定发出访问的应用集群,其中,在主机房和每一个子机房中,分别部署至少一个应用集群;从主机房的redis集群中获取Spring容器,并从Spring容器中确定代理对象,所述代理对象包括预设的业务资源;获取所确定的代理对象的锁执行器,并通过所述锁执行器对所确定的代理对象加锁;接收到所述应用集群发送的解锁通知后,对被加锁的代理对象进行解锁。2.根据权利要求1所述的方法,其特征在于,所述访问请求用于请求获取锁服务,所述Spring容器中的代理对象与所述访问请求指向的代理对象相互对应。3.根据权利要求2所述的方法,其特征在于,所述接收服务入口的访问,并确定发出访问的应用集群,包括:通过rsf服务路由发出的访问请求;根据所述rsf服务路由确定发出所述访问请求的应用集群和所述应用集群所在的子机房。4.根据权利要求2所述的方法,其特征在于,所述接收服务入口的访问,并确定发出访问的应用集群,包括:接收到应用集群直接发出的访问请求,并确定所述直接发出访问请求的应用集群在所述主机房中。5.根据权利要求1所述的方法,其特征在于,还包括:启动Spring容器后,扫描锁的注解类,并加载被扫描锁的配置;根据被扫描锁的注解类生成代理对象,并将所生成的代理对象存入Spring容器。6.一种用于多活场景的资源加锁装置,其特征在于,包括:访问管理模块,用于接收服务入口的访问,并确定发出访问的应用集群,其中,在主机房和每一个子机房中,分别部署至少一个应用集群;锁提取模块,用于从主机房的redis集群中获取Spring容器,并从Spring容器中确定代理对象,所述代理对象包括预设的业务资源;加锁模块,用于获取所确定的代理对象的锁执行器,并通过所述锁执行器对所确定的代理对象加锁;解锁模块,用于接收到所述应用集群发送的解锁通知后,对被加锁的代...

【专利技术属性】
技术研发人员:葛伟龚钢林仁山司孝波叶国华
申请(专利权)人:苏宁易购集团股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1