基于Quorum机制实现权限数据缓存同步的方法及装置制造方法及图纸

技术编号:15334547 阅读:134 留言:0更新日期:2017-05-16 21:45
本发明专利技术提供基于Quorum机制实现n个缓存服务器权限数据缓存同步的方法,包括:将需要更新的权限数据更新到k个缓存服务器中,整数k大于0且小于或等于n,之后提示更新成功,其中,所述权限数据包括版本号;在提示更新成功之后,当接收到用户发来的权限数据获取请求时,从任意n-k+1个缓存服务器中读取权限数据以获取n-k+1组权限数据,并将其中版本号最新的权限数据返回给用户。

【技术实现步骤摘要】
基于Quorum机制实现权限数据缓存同步的方法及装置
本专利技术涉及计算机
,特别地涉及一种基于Quorum机制实现权限数据缓存同步的方法及装置。
技术介绍
运营管理中心(OperationManagementCenter,OMC)作为仓储项目中商品属性管理的统一平台,里面包含有很多的权限管理,管理着商品属性或者商品模块与其管理者或者管理员的权限关系。当OMC系统的管理员对用户(即:商品或模块的管理者)进行授权时,需要保证授权的一致性,即所有访问到OMC系统中的用户(即:商品或模块的管理者)都应该拥有最新的权限,否则就会出现管理上的混乱。目前常用的权限数据缓存同步的方法,基本上是基于web服务器(webserver)中内置的会话(session)管理器,来进行同步管理。比如tomcat的sessionManager等。一般情况下,基于web服务器的权限管理,是将用户的权限数据以加密或者明文的方式存储到web服务器内置的会话信息中,然后通过web服务器的会话管理器,将各自的会话信息进行数据库存储,并将存储的会话数据共享到系统集群中所有的缓存服务器中以实现权限数据缓存同步。例如:假设初次登录时是web服务器1提供服务,用户进行了一些操作(如将商品添加购物车)后刷新了系统,此时根据OMC系统的负载均衡原则可能会更换为web服务器2来提供服务。由于会话中保存了之前的操作信息,会同步更新到其他web服务器的缓存服务器中,因此不会出现购物车中无新添加商品的情况,以此实现缓存同步。由于OMC系统具有负载均衡功能,因此在分布式系统集群中,可以实现对所有OMC系统的缓存服务器中每个用户(即:商品或模块的管理者)的权限进行缓存同步。但是如果缓存服务器过多,则当OMC系统的管理员在对用户的权限进行设置时就会出现卡顿甚至延时的情况。例如:假设缓存服务器有n个,正常情况下需要将管理员配置的用户的权限数据缓存到所有缓存服务器之后,才会返回给管理员“操作成功”的提示。而在实际情况下,当缓存服务器过多时,一方面,管理员可能无法等待所有缓存服务器都同步完并提示“操作成功”后再进行其他操作;另一方面,大多数的web应用,基本上都设置了超时时间,可能没等同步完就已经超时了。这样带来非常不好的使用体验,同时对系统的健壮性和数据的一致性都会带来一些影响。并且,在使用过程中发现,现有的权限数据缓存同步的方法对web服务器的依赖性过强,一旦出现web服务器宕机,将无法更新权限数据。例如:当管理员修改了一个用户(即:商品或模块的管理者)的权限数据,但是在更新到第5个web服务器的时候宕机了,故第5个web服务器没有更新成功;在该用户下次登录商品管理系统时,如果是该web服务器提供服务,则会出现权限数据错误的情况,即:该web服务器未获取最新权限数据。尤其对于OMC系统,随时可能有其他系统来读取用户(即:商品或模块的管理者)的权限数据,那么权限数据缓存的同步就显得更为重要。因此,需要一种机制,既能够保障管理员在同步缓存时,执行最快的写操作,加快更新速度,又能够保证每次读取都能获取到各个用户的最新权限。
技术实现思路
有鉴于此,本专利技术提供一种基于Quorum机制实现权限数据缓存同步的方法及装置,通过使用缓存服务器来保存用户权限数据,实现与web服务器的会话管理解耦,能够避免对web服务器的强依赖性;同时采用Quorum机制来实现权限数据缓存同步,能够有效地解决系统延时的问题,提高更新效率。为实现上述目的,根据本专利技术的一个方面,提供了一种基于Quorum机制实现权限数据缓存同步的方法。一种基于Quorum机制实现权限数据缓存同步的方法,其中共有n个缓存服务器,n是正整数,所述方法包括:确定整数k,k大于0且小于或等于n;将需要更新的权限数据更新到k个缓存服务器中,之后提示更新成功,其中,所述权限数据包括版本号;在提示更新成功之后,当接收到用户发来的权限数据获取请求时,从任意n-k+1个缓存服务器中读取权限数据以获取n-k+1组权限数据,并将其中版本号最新的权限数据返回给用户。可选地,还包括:在提示更新成功之后,在后台将所述权限数据更新到其余n-k个缓存服务器中。可选地,在后台将所述权限数据更新到其余n-k个缓存服务器中的步骤包括:根据后台的异步处理机制,从任意n-k+1个缓存服务器中读取权限数据以获得n-k+1组权限数据;从所述n-k+1组权限数据中找到版本号最新的权限数据;将所述版本号最新的权限数据更新到其余n-k个缓存服务器中。根据本专利技术的另一方面,提供了一种基于Quorum机制实现权限数据缓存同步的装置。一种基于Quorum机制实现权限数据缓存同步的装置,包括:前台更新模块,用于将需要更新的权限数据更新到k个缓存服务器中,之后提示更新成功,其中,所述权限数据包括版本号,所述缓存服务器有n个,且k是大于0且小于或等于n的确定整数;数据读取模块,用于在提示更新成功之后,当接收到用户发来的权限数据获取请求时,从任意n-k+1个缓存服务器中读取权限数据以获取n-k+1组权限数据,并将其中版本号最新的权限数据返回给用户。可选地,还包括:后台同步模块,用于在提示更新成功之后,在后台将所述权限数据更新到其余n-k个缓存服务器中。可选地,所述后台同步模块还用于:根据后台的异步处理机制,从任意n-k+1个缓存服务器中读取权限数据以获得n-k+1组权限数据;从所述n-k+1组权限数据中找到版本号最新的权限数据;将所述版本号最新的权限数据更新到其余n-k个缓存服务器中。根据本专利技术的技术方案,通过使用缓存服务器来保存用户的权限数据,实现与web服务器的会话管理解耦,能够避免对web服务器的强依赖性;同时采用Quorum机制来实现权限数据缓存同步,能够有效地解决系统延时的问题,提高更新效率。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的基于Quorum机制实现权限数据缓存同步的方法的主要步骤示意图;图2是根据本专利技术实施例的基于Quorum机制实现权限数据缓存同步的方法的实现过程示意图;图3是根据本专利技术实施例的基于Quorum机制实现权限数据缓存同步的装置的主要模块示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本专利技术的技术方案,是通过采用Quorum机制来实现数据同步。已知的Quorum机制被用来解决读写模型中读写的负载均衡。假设总共有n个数据副本,其中k个已经更新(k<n),而N-k个未更新,则当任意读取N-k+1个数据副本的时候,其中必定至少有1个是被更新的(鸽巢原理)。我们只需通过比较选择所读取的N-k+1个数据中版本最新的那个数据,就可以得到最新更新的数据了。根据本专利技术,在一共需要对n个缓存服务器更新权限数据的情况下,当k个缓存服务器已被更新,则任意读取n-k+1个缓存服务器的权限数据,其中必定有一个是最新的数据。本发本文档来自技高网
...
基于Quorum机制实现权限数据缓存同步的方法及装置

【技术保护点】
一种基于Quorum机制实现权限数据缓存同步的方法,其中共有n个缓存服务器,n是正整数,其特征在于,所述方法包括:确定整数k,k大于0且小于或等于n;将需要更新的权限数据更新到k个缓存服务器中,之后提示更新成功,其中,所述权限数据包括版本号;在提示更新成功之后,当接收到用户发来的权限数据获取请求时,从任意n‑k+1个缓存服务器中读取权限数据以获取n‑k+1组权限数据,并将其中版本号最新的权限数据返回给用户。

【技术特征摘要】
1.一种基于Quorum机制实现权限数据缓存同步的方法,其中共有n个缓存服务器,n是正整数,其特征在于,所述方法包括:确定整数k,k大于0且小于或等于n;将需要更新的权限数据更新到k个缓存服务器中,之后提示更新成功,其中,所述权限数据包括版本号;在提示更新成功之后,当接收到用户发来的权限数据获取请求时,从任意n-k+1个缓存服务器中读取权限数据以获取n-k+1组权限数据,并将其中版本号最新的权限数据返回给用户。2.根据权利要求1所述的方法,其特征在于,还包括:在提示更新成功之后,在后台将所述权限数据更新到其余n-k个缓存服务器中。3.根据权利要求2所述的方法,其特征在于,在后台将所述权限数据更新到其余n-k个缓存服务器中的步骤包括:根据后台的异步处理机制,从任意n-k+1个缓存服务器中读取权限数据以获得n-k+1组权限数据;从所述n-k+1组权限数据中找到版本号最新的权限数据;将所述版本号最新的权限数据更新到其余n-k个缓存服务器中...

【专利技术属性】
技术研发人员:刘恩英
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1