一种多实例的token共享与维护的方法及系统的制作方法

文档序号:9420314阅读:2103来源:国知局
一种多实例的token共享与维护的方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种多实例的token共享与维护的方法及系统。
【背景技术】
[0002]随着虚拟运营商的出现,3大运营商陆续公布自己的对外商用接口进行支撑合作,这些商用接口形式多样,方式不一。并仿照互联网接口的理念进行了功能划分。与传内部统接口的最大不同在多出了鉴权的概念,并产生了用户名、密码、token、key、时效和调用次数等鉴权信息。
[0003]ESB作为成熟的接口总线,为了适应时代的需要,发挥更大的作用,实现了面向多系统、多实例的token共享和维护机制。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种在多实例间实现token共享,自动更新,管理鉴权行为多实例的token共享与维护的方法及系统。
[0005]本发明解决上述技术问题的技术方案如下:一种多实例的token共享与维护的方法,具体包括以下步骤:
[0006]步骤1:将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
[0007]步骤2:主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
[0008]步骤3:调用一个节点,判断所述节点是否是主节点;如果是,执行步骤5 ;否则,执行步骤4 ;
[0009]步骤4:检查所述从节点是否持有token,如果是,执行步骤5 ;否则,从节点从共享内存中获取token,执行步骤5 ;
[0010]步骤5:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,执行步骤6 ;否则,执行步骤6 ;
[0011]步骤6:判断是否接收到调用指令,如果是,执行步骤3 ;否则,结束。
[0012]本发明的有益效果是:本发明提供的token共享和管理机制,能够自动实现鉴权和token共享,避免因token、key等变动因素过期,导致接口调用失效;保证虚拟运营商的业务不受底层技术规范的限制和影响。
[0013]在上述技术方案的基础上,本发明还可以做如下改进。
[0014]进一步,所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
[0015]如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
[0016]所述token的时效包括集群内时效和服务时效。
[0017]进一步,所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
[0018]进一步,所述步骤5具体包括以下步骤:
[0019]步骤5.1:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,执行步骤5.2 ;否则,执行步骤6 ;
[0020]步骤5.2:判断所述节点是否是主节点,如果是,执行步骤5.3 ;否则,执行步骤5.4 ;
[0021]步骤5.3:主节点重新从服务端获取token,并存入共享内存和数据库,执行步骤6 ;
[0022]步骤5.4:从节点丢弃已持有的token,从共享内存中重新获取token,执行步骤6。
[0023]进一步,同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
[0024]进一步,所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
[0025]本发明解决上述技术问题的技术方案如下:一种多实例的token共享与维护的系统,包括实例定义模块、主节点模块、调用模块和时效性模块;
[0026]所述实例定义模块用于将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
[0027]所述主节点模块用于控制主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
[0028]所述调用模块用于调用一个节点,判断所述节点是否是主节点;如果是,触发时效性模块;否则,检查所述从节点是否持有token,如没有,所述从节点从共享内存中获取token,触发时效性模块;
[0029]所述时效性模块用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,完成对token共享与维护,等待下一次调用;否则,完成对token共享与维护,等待下一次调用。
[0030]本发明的有益效果是:本发明提供的token共享和管理机制,能够自动实现鉴权和token共享,避免因token、key等变动因素过期,导致接口调用失效;保证虚拟运营商的业务不受底层技术规范的限制和影响。
[0031 ] 在上述技术方案的基础上,本发明还可以做如下改进。
[0032]进一步,所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
[0033]如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
[0034]所述token的时效包括集群内时效和服务时效。
[0035]进一步,所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
[0036]进一步,所述时效性模块包括时效检查模块和节点判断模块;
[0037]所述时效检查模块用于对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;
[0038]所述节点判断模块用于判断所述节点是否是主节点,如果是,节点重新从服务端获取token,并存入共享内存和数据库;否则,从节点丢弃已持有的token,从共享内存中重新获取token。
[0039]进一步,同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
[0040]进一步,所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
【附图说明】
[0041]图1为本发明实施例所述的一种多实例的token共享与维护的方法流程图;
[0042]图2为本发明实施例所述的一种多实例的token共享与维护的系统结构框图。
[0043]附图中,各标号所代表的部件列表如下:
[0044]1、实例定义模块,2、主节点模块,3、调用模块,4、时效性模块,41、时效检查模块,42、节点判断模块。
【具体实施方式】
[0045]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0046]如图1所示,为本发明实施例所述的一种多实例的token共享与维护的方法,具体包括以下步骤:
[0047]步骤1:将集群中的每个实例定义为一个节点,并选定一个实例为主节点,其余所有实例均为从节点;
[0048]步骤2:主节点从服务端获取token,并将获取的token存入共享内存和数据库中;
[0049]步骤3:调用一个节点,判断所述节点是否是主节点;如果是,执行步骤5 ;否则,执行步骤4 ;
[0050]步骤4:检查所述从节点是否持有token,如果是,执行步骤5 ;否则,从节点从共享内存中获取token,执行步骤5 ;
[0051]步骤5:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,重新获取token,执行步骤6 ;否则,执行步骤6 ;
[0052]步骤6:判断是否接收到调用指令,如果是,执行步骤3 ;否则,结束。
[0053]所述token的时效性,是指在预设的时间内或预设的使用次数内,所述token是有效的;并将其中预设的时间或预设的使用次数定义为时效;
[0054]如果token超出预设的时间或预设的使用次数,则判断token丧失时效性;否则,则判断token未丧失时效性;
[0055]所述token的时效包括集群内时效和服务时效。
[0056]所述集群内时效小于服务时效,在集群重启时,存储在共享内存和数据库中的token仍然有效,因此统一使用数据库存储的token完成加载。
[0057]所述步骤5具体包括以下步骤:
[0058]步骤5.1:对所述节点进行token集群内时效性检查,并判断token是否丧失集群内时效性;如果是,执行步骤5.2 ;否则,执行步骤6 ;
[0059]步骤5.2:判断所述节点是否是主节点,如果是,执行步骤5.3 ;否则,执行步骤5.4 ;
[0060]步骤5.3:主节点重新从服务端获取token,并存入共享内存和数据库,执行步骤6 ;
[0061]步骤5.4:从节点丢弃已持有的token,从共享内存中重新获取token,执行步骤6。
[0062]同时对多个节点进行集群内时效性检查时,主节点优先进行集群内时效性检查。
[0063]所述主节点额外运行集群内时效性检查,在没有调用时也会更新共享内存中和数据库中的token。
[0064]如图2所示,为本发明实施例所述的一种多实例的token共享与维护的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1