CN108696581A - 分布式信息的缓存方法、装置、计算机设备以及存储介质 - Google Patents

分布式信息的缓存方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN108696581A
CN108696581A CN201810427864.XA CN201810427864A CN108696581A CN 108696581 A CN108696581 A CN 108696581A CN 201810427864 A CN201810427864 A CN 201810427864A CN 108696581 A CN108696581 A CN 108696581A
Authority
CN
China
Prior art keywords
server
information
user
cache
distributed
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.)
Granted
Application number
CN201810427864.XA
Other languages
English (en)
Other versions
CN108696581B (zh
Inventor
严峻
朱频频
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhizhen Intelligent Network Technology Co Ltd
Original Assignee
Shanghai Zhizhen Intelligent Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhizhen Intelligent Network Technology Co Ltd filed Critical Shanghai Zhizhen Intelligent Network Technology Co Ltd
Priority to CN201810427864.XA priority Critical patent/CN108696581B/zh
Publication of CN108696581A publication Critical patent/CN108696581A/zh
Application granted granted Critical
Publication of CN108696581B publication Critical patent/CN108696581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种分布式信息的缓存方法、装置、计算机设备及存储介质。所述方法包括:获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。本发明实施例可以优化现有的分布式缓存技术,满足人们不断增长的个性化、便捷化的分布式缓存需求。

Description

分布式信息的缓存方法、装置、计算机设备以及存储介质
技术领域
本发明实施例涉及分布式***领域,尤其涉及一种分布式信息的缓存方法、装置、计算机设备以及存储介质。
背景技术
随着互联网的发展,使用网络服务的用户量越来越多,一台服务器无法支撑庞大的用户群体,从而为了向人们提供更好的服务,一般选择设置多台服务器,并部署在分布式集群环境中,但分布式设置服务器会存在缓存共享的问题,从而用于缓存信息的分布式应用的开发越来越受到人们的重视。
目前,市面上有许多分布式缓存产品,如Memcached、Radis等常用软件,可以实现在分布式集群环境下,对特定对象(如List,Map等数据类型)的数据进行存、取或备份等操作。
现有的缓存产品具有一定的局限性,比如:必须单独安装部署,并为其专门开通一个服务器端口进行调用;在缓存产品的缓存程序出现问题时,需要特别专业的人员才能够维护。换句话说,如果一个分布式集群***想要使用现有缓存产品,必须单独安装相应的客户端以及服务器,才能适用。
发明内容
本发明实施例提供了一种分布式信息的缓存方法、装置、计算机设备以及存储介质,以优化现有的分布式缓存技术,满足人们不断增长的个性化、便捷化的分布式缓存需求。
第一方面,本发明实施例提供了一种分布式信息的缓存方法,包括:
获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;
根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;
通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
第二方面,本发明实施例还提供了一种分布式信息的缓存装置,包括:
用户缓存信息获取模块,用于获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;
目标服务器选择模块,用于根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;
用户缓存信息缓存模块,用于通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的分布式信息的缓存方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的分布式信息的缓存方法。
本发明实施例根据用户缓存信息选择目标服务器,并通过分布式集群***中已有的集群通信端口作为服务器端口将用户缓存信息向目标服务器进行缓存,解决了现有技术中必须单独安装部署缓存产品,且为该缓存产品开通一个新的端口才能实现缓存分布式信息的问题,节约了宝贵的端口资源,优化了整个分布式集群***的性能,并彻底避免了单独安装部署缓存产品需要的人力成本。
附图说明
图1a是本发明实施例一所适用的一种分布式信息集群***的结构示意图;
图1b是本发明实施例一提供的一种分布式信息的缓存方法的流程图;
图2是本发明实施例二提供的一种分布式信息的缓存方法的流程图;
图3a是本发明实施例三提供的一种分布式信息的缓存方法的流程图;
图3b是本发明实施例三提供的一种分布式信息的缓存方法的功能框图;
图4是本发明实施例四提供的一种分布式信息的缓存方法的流程图;
图5是本发明实施例五提供的一种分布式信息的缓存装置的结构示意图;
图6是本发明实施例六提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1a是本发明实施例一所适用的一种分布式集群***的结构示意图,如图1a所示,一个分布式集群***可以包括多个设备101,这些设备101通过一个路由器102实现信息的交互。分布式集群***中的每个设备101可以共同配合完成一个任务,也可以独立完成一个任务,且每一个设备101均可以成为控制节点,向该分布式集群***中的其他设备101发布任务,同时,当任意一个设备101任务失败时,其他设备101可以接管失败的任务重新执行任务,从而使分布式集群***可以具有负载均衡和失效恢复功能,从而解决网络拥堵的问题。
其中,每个设备101均是该分布式集群***中的节点,同时设备101与设备101之间通过各自的集群通信端口进行通信。典型的,在组建分布式集群***时,各个节点均选择同一端口(例如,7000端口)作为所述集群通信端口。
本发明实施例中的分布式集群***中包括有多个具备缓存功能的节点,信息的缓存操作可以通过在节点上安装一个缓存客户端实现,信息的缓存位置为分布式集群***中的节点所安装的服务器中,该服务器专门用于存储缓存信息。相应的,分布式集群***中的任一节点可以随时获取其他节点上的服务器中所缓存的内容。一般来说,用于执行缓存操作的客户端以及用于存储缓存信息的服务器均是对应安装于同一节点中,也即,能够执行缓存操作的节点,一般是配置有服务器的节点。
可以在分布式集群***中的部分节点或者全部节点上均配置上述服务器。可选的,可以在分布式集群***中的每个节点中都配置该缓存服务器,从而可以在任意一个节点接收到缓存信息时,直接执行从分布式集群***中全部缓存服务器中任选一个缓存服务器对该缓存信息进行存储的操作。
图1b为本发明实施例一提供的一种分布式信息的缓存方法的流程图,本实施例可适用于在分布式集群***中存储用户缓存信息的情况,该方法可以由本发明实施例提供的分布式信息的缓存装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成分布式集群***中的一个节点中,例如,台式机或机器人等。如图1b所示,本实施例的方法具体包括:
S110,获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器。
在本实施例中,用户缓存信息具体是指交互用户与分布式集群***中的一个节点进行信息交互时,发送的交互信息的备份信息。一般来说,一个节点在收到交互用户的交互信息时,根据该交互信息执行相应的信息反馈,同时,将交互信息的备份信息以分布式缓存的方式在分布式集群***中进行存储。
典型的,如果接收到所述交互信息的节点能够执行缓存操作,可以直接对相应的用户缓存信息进行缓存;如果接收到所述交互信息的节点不能够执行缓存操作,则可以在分布式集群***中选择一个能够执行缓存操作的其他节点,并将与所述交互信息对应的用户缓存信息发送至选择的节点进行缓存;或者不论该接收到所述交互信息的节点是否能够执行缓存操作,其都将与所述交互信息对应的用户缓存信息发送至负载均衡***,由该负载均衡***来选择节点对所述用户缓存信息进行缓存。
其中,交互用户可以通过电脑、智能终端(手机、平板等)或者可穿戴设备等终端向所述分布式集群***发送该交互信息。该交互信息具体可以是通过网页浏览器或微信等应用程序输入的语音或者文字信息。因此,交互信息对应的用户缓存信息相应包括有第一用户标识信息,用于唯一确定用户的身份,具体可以是电脑的IP地址、手机号或者登陆应用程序的账号等信息。
一般来说,在分布式集群***中存在多个节点,而且每两个节点之间均可以通过集群通信端口进行通信。在该分布式集群***中可以选择至少两个节点配置用于缓存信息的服务器。典型的,可以在分布式集群***中的全部节点上均配置对应的服务器。
其中,在本实施例中,分布式集群***中的节点可以是机器人,也即:该分布式集群***可以包括多个机器人节点,同时可以将能够在分布式集群***中执行缓存用户缓存信息操作的节点作为目标节点,也即分布式信息的缓存方法的执行主体是目标节点。
具体的,用户缓存信息为交互用户通过设定类型的客户端向机器人节点发送的交互问题。在一个具体的例子中,用户缓存信息可以是交互用户通过IOS***的终端中的safari应用程序向目标节点发送的交互问题。
在本发明另一个可选的实施例中,获取用户缓存信息,可以包括:获取经由负载均衡***分发的所述用户缓存信息,所述负载均衡***包括:负载均衡软件和/或负载均衡硬件。
具体的,负载均衡***用于将用户缓存信息分摊到分布式集群***中的多个服务器,使分布式集群***中的服务器的数据负荷量达到均衡状态,负载均衡***的类型可以是F5、Nginx或Apache等。
S120,根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器。
在本实施例中,根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器可以包括:根据所述第一用户标识信息,确定所述用户缓存信息的属性信息,所述属性信息可以为多种形式,例如:微信、微博或者网页等应用程序属性;台式机、移动终端或者穿戴设备等设备属性;或者语音或文本等数据格式属性等,进而可以根据所述用户缓存信息的属性信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器。
相类似的,在读取之前存储的用户缓存信息时,也可以获取读取的用户缓存信息的第二用户标识信息,根据所述第二用户标识信息,确定需要从哪一个节点中配置的服务器中读取对应的用户缓存信息。
此外,还可以将不同的第一用户标识信息均映射至一个设定的数值范围内,并建立该范围内的不同数值与分布式集群***中不同服务器之间的对应关系,进而,在获取某一个第一用户标识信息后,通过上述映射处理,得到与该第一用户标识信息对应的目标服务器。
此外,选择目标服务器的方式还可以是按照设定顺序遍历服务器,将用户缓存信息存入当前遍历到且与用户缓存信息关联度最小的服务器中。对此,本发明实施例中不作具体限制。
通过选择与用户缓存信息匹配的服务器存储用户缓存信息,可以提高缓存用户缓存信息的精准性,实现避免在一个服务器中储存过量数据降低服务器的响应速度。
可选的,可以直接根据第一用户标识信息确定所述目标服务器,也可以根据第一用户标识信息结合分布式集群***中各个服务器的状态(正常或者故障),确定所述目标服务器,本实施例对此并不进行限制。
S130,通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
在本实施例中,分布式集群***中的各个节点可以通过集群通信端口进行通信,当确定目标服务器之后,将用户缓存信息缓存至该目标服务器中。其中,将用户缓存信息存入目标服务器中的具体方法可以是,通过集群通信端口,调用目标服务器的缓存接口缓存该用户缓存信息。
在本实施例中,为了避免现有技术的缺陷,考虑在各个节点所配置的工程文件中的,预先加入的设定jar包,以实现执行缓存操作的客户端的功能以及缓存用户缓存信息的服务器的功能。由于jar包属于轻量级应用,因此使用者不用单独安装缓存软件,因此也就无需开通单独的端口作为服务器端口传输用户缓存信息,仅使用现有的集群通信端口即可。
其中,所述jar包支持的缓存对象包括以下任一种或多种:String对象、List对象、Map对象以及自定义序列化对象。上述缓存对象均是java环境中通用的缓存对象,使用者可以根据实际需要设置所需的缓存对象。所述缓存对象,具体是指所缓存的用户缓存信息的数据格式。
具体的,序列化对象可以是包含对象的数据、状态以及其引用的对象的数据等信息的对象,即最大程度保留对象的各种信息。jar包可以包含多种序列化对象,将缓存对象的信息最大程度保留,可以在读取该缓存对象时,获取该对象关联的信息,此外jar包可以支持自定义序列化对象,提高该jar包的扩展性。jar包可以直接加入节点配置的工程文件中,无需用户重新安装程序,降低分布式信息的缓存方法的实现难度以及后续的维护成本。
可选的,jar包的用户设置项包括:服务器列表,或者jar包的用户设置项包括:服务器列表以及销毁时长。其中,服务器列表可以包括分布式集群中所包含的服务器,以及服务器的属性信息,例如服务器的地址信息、状态信息等。而且,服务器列表中存储的信息可以定期更新;销毁时长可以是用于对分布式集群***中服务器的缓存内容进行销毁操作的周期,具体可以由用户进行设置。
一般来说,在目标服务器成功储存用户缓存信息后,会对应向发送用户缓存信息的节点发送反馈信息,发送用户缓存信息的节点根据是否接收到反馈信息以及反馈信息的内容确定目标服务器是否成功缓存用户缓存信息。由此,根据在目标服务器成功缓存用户缓存信息之后返回的反馈信息,可以监控目标服务器是否成功缓存用户缓存信息,从而可以在缓存失败时重新选择其他服务器进行缓存,以提高分布式信息的缓存***的可靠性。
本发明实施例根据用户缓存信息选择目标服务器,并通过分布式集群***中已有的集群通信端口作为服务器端口将用户缓存信息向目标服务器进行缓存,解决了现有技术中必须单独安装部署缓存产品,且为该缓存产品开通一个新的端口才能实现缓存分布式信息的问题,节约了宝贵的端口资源,优化了整个分布式集群***的性能,并彻底避免了单独安装部署缓存产品需要的人力成本。
在上述各实施例的基础上,所述方法还包括:在确定到达预先设定的销毁时长时,在执行所述方法的节点所配置的服务器中,将存储的设定缓存内容进行销毁。
具体的,可以设置定期销毁分布式集群***中的各个节点配置的服务器中的缓存内容,释放资源,防止因数据冗余导致分布式集群***响应延迟,从而造成丢失数据的问题。
可选的,在执行所述方法的节点所配置的服务器中,将存储的设定缓存内容进行销毁之前,所述方法还包括:在确定到达所述销毁时长时,向管理用户发送销毁提示信息;和/或在确定当前时间点与所述销毁时长对应的销毁时间点之间的差值小于设定时间阈值时,向管理用户发送销毁提示信息。
具体的,在销毁缓存内容之前,向管理人员进行确认,防止在管理人员对将要销毁的数据仍有需求的情况下销毁数据从而造成用户的损失的情况,提高分布式信息缓存方法的灵活性,提高用户体验。
实施例二
图2为本发明实施例二提供的一种分布式信息的缓存方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,根据所述服务器的状态分为正常服务器和故障服务器。则所述根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器,包括:根据所述第一用户标识信息,在所述分布式集群***的正常服务器中选择与所述用户缓存信息匹配的服务器作为目标服务器。具体如图2所示,具体方法包括:
S210,获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器,其中,根据所述服务器的状态分为正常服务器和故障服务器。
在本实施例中,判断服务器是正常服务器还是故障服务器具体可以构建一个服务器列表,存有该分布式集群***中所有的服务器,以及每个服务器对应的标识信息以及对应的地址,所述标识信息用于标识正常服务器以及故障服务器。同时,该服务器列表中的服务器对应的标识信息可以定期更新。分布式集群***中所有节点均可以存有该服务器列表,并根据该服务器列表获取目标服务器的状态。
其中,可以采用监听的方式对服务器进行标识。具体可以是:定期向全部服务器发送信息,当接收到服务器的反馈信息时,根据反馈信息的内容判别服务器是否故障,并对相应的服务器进行标识。或者还可以是直接向目标服务器发送用户缓存信息,根据目标服务器是否发送反馈信息,以及发送的反馈信息的内容,判断该目标服务器是否为故障服务器:具体的,可以是当没有接收到目标服务器发送的反馈信息时,确定该目标服务器故障;或当反馈信息的内容与成功缓存对应的反馈信息的内容不匹配时,确定该目标服务器故障,并将该目标服务器标识为故障服务器。
S220,根据所述第一用户标识信息,在所述分布式集群***的正常服务器中选择与所述用户缓存信息匹配的服务器作为目标服务器。
在本实施例中,从正常服务器中选择目标服务器,减小选取的目标服务器是故障服务器的概率,从而实现提高缓存用户缓存信息的成功率。
S230,通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
由此,本发明实施例通过将服务器分为故障服务器和正常服务器,并从正常服务器中选择目标服务器,提高缓存用户缓存信息的成功率,提高分布式信息的缓存***的可靠性。
实施例三
图3a为本发明实施例三提供的一种分布式信息的缓存方法的流程图,本实施例以上述实施例为基础进行优化。具体如图3a所示,具体方法包括:
S310,获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器,其中,根据所述服务器的状态分为正常服务器和故障服务器。
S320,根据所述第一用户标识信息,在所述分布式集群***的正常服务器中选择与所述用户缓存信息匹配的服务器作为目标服务器。
S330,通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
S340,当确定所述目标服务器缓存所述用户缓存信息失败时,将所述目标服务器标识为故障服务器。
在本实施例中,可以设置目标服务器在成功缓存用户缓存信息之后,向发送用户缓存信息的节点发送设定反馈信息,若发送用户缓存信息的节点在设定时间内没有收到目标服务器发送的设定反馈信息,确定该目标服务器缓存用户缓存信息失败,即该目标服务器为故障服务器,并对其进行标识。
S350,在所述分布式集群***的正常服务器中重新选择新的目标服务器,并通过所述集群通信端口,执行将所述用户缓存信息缓存于所述新的目标服务器的操作。
在本实施例中,可以根据更新后的服务器的标识信息,从中筛出正常服务器,并从中重新确定目标服务器,将用户缓存信息缓存于新的目标服务器中。典型的,重新确定的目标服务器可以是服务器列表中的第一个服务器,或者服务器列表中性能最优的服务器(或者说,最不容易发生故障的服务器)。典型的,可以预先在所述服务器列表加入各个服务器的性能标签,用于帮助确定新的所述目标服务器。
S360,判断是否成功缓存所述用户缓存信息;若是,执行S370;若否,返回执行S340。
在本实施例中,若新的目标服务器仍为故障服务器,可以重复执行之前的步骤,直至成功缓存用户缓存信息。
S370,结束流程。
在本发明另一个可选的实施例中,所述方法还包括:监听故障服务器的状态;当所述故障服务器由故障状态更改为正常状态时,将所述故障服务器作为目标故障服务器,并获取所述目标故障服务器的故障时间段;在执行所述方法的节点所配置的服务器中,选择与所述故障时间段对应的缓存内容同步至所述目标故障服务器;将所述目标故障服务器标识为正常服务器。
具体的,可以设置一个自动检测服务器状态的***(所述***可以通过在所述jar包中植入相关代码实现),定时(每隔5分钟或者10分钟等)或者实时检测服务器的状态。当监听到有故障服务器转变为正常服务器时,获取故障服务器的故障时间,同时获取该故障时间中的缓存内容发送至该故障服务器,并将该故障服务器标识为正常服务器。该服务器可以自行选择是否将发送的缓存内容全部接受或者部分接收(如只接收原本应该发送至该服务器的用户缓存信息)。
其中,所述故障时间具体可以是,以所述故障服务器最近一次被标注为故障服务器的时间为起点,以***监听出该故障服务器恢复正常的时间为终点的时间段。
在一个具体的例子中,图3b是本发明实施例提供的一种分布式信息的缓存方法的功能框图,如图3b所示,用户消息371(前文所述的用户缓存信息)传送至负载均衡软件/硬件372,由负载均衡软件或者硬件372随机分配一个执行缓存操作的节点373缓存该用户信息371,该节点373根据接收到的缓存指令,并根据用户信息371所包含的用户ID等信息确定目标服务器。节点373将该用户信息371发送至该目标服务器进行缓存,并判断是否缓存成功,若是,直接执行后续操作,并将相应的成功缓存响应返回到负载均衡软件/硬件372;若否,标识该目标服务器故障,重新递归分配所有可用的服务器,至到成功缓存用户消息371为止。其中,节点373可以内嵌服务器状态***,当服务器状态从故障变为正常的时候,会自动同步所有服务器中的缓存,以避免请求历史缓存内容却无法找到的异常情况发生。
由此,通过检测到故障服务器的状态变为正常状态时,将故障时间段内传输的所有缓存内容发送至该故障服务器,将故障时间内传输的数据进行备份,避免无法找到历史缓存内容的情况,提高分布式信息的缓存***的可靠性。
可选的,所述方法还包括:获取缓存读取指令,所述缓存读取指令包括第二用户标识信息;根据所述第二用户标识信息,在所述分布式集群***的正常服务器中选择与所述缓存读取指令匹配的服务器作为读取服务器;通过所述集群通信端口,执行从所述读取服务器中读取与所述缓存读取指令匹配的缓存内容的操作;当确定从所述读取服务器中读取失败时,将所述读取服务器标识为故障服务器;在所述分布式集群***的正常服务器中重新选择一正常服务器作为新的读取服务器;返回执行通过所述集群通信端口,执行从所述读取服务器中读取与所述缓存读取指令匹配的缓存内容的操作的步骤,直至成功读取与所述缓存读取指令匹配的缓存信息。
在本实施例中的分布式集群***里,除了向服务器中存储缓存内容之外还需要从服务器中读取缓存内容,可以通过缓存读取指令中包含的第二用户标识信息,确定读取服务器,并从中读取缓存内容;当读取失败时,从正常服务器中重新确定读取服务器以读取缓存内容,直至读取成功为止。由此,通过根据缓存读取指令确定读取服务器读取缓存内容,可以实现准确获取需要的缓存内容,从缓存内容的读取方面提高分布式信息的缓存***的容错率,进一步提高分布式信息的缓存***的精准性和可靠性。
其中,可以在缓存用户缓存信息时记录该用户缓存信息的缓存服务器,并在需要读取该用户缓存信息中,直接获取该缓存服务器的地址,用于构建第二用户标识信息,最终生成缓存读取指令,实现精确读取该用户缓存信息。
本发明实施例在确定目标服务器缓存用户缓存信息失败时,重新从正常服务器中选择目标服务器,直至缓存成功,进一步提高分布式信息的缓存***的可靠性。
实施例四
图4为本发明实施例四提供的一种分布式信息的缓存方法的流程图,本实施例以上述实施例为基础进行优化。具体如图4所示,具体方法包括:
S401,获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器,其中,根据所述服务器的状态分为正常服务器和故障服务器。
S402,计算与所述第一用户标识信息对应的标识哈希码,并得到所述标识哈希码的哈希码绝对值。
在本实施例中,哈希码可以是根据第一用户标识信息计算出来的数值,用于将不同的第一用户标识信息分布到设定的数值范围内,其中,哈希码的计算方法具体可以根据实际需要确定,本发明实施例不做具体限制。
S403,计算所述哈希码绝对值除以所述分布式集群***中的服务器总数后的余数。
显然,所述余数的范围必然属于[0,N-1],其中,所述N为所述分布式集群***中的服务器。通过上述设置,可以将任意第一用户标识信息,与分布式集群***中的一台服务器建立关联对应关系,也即:在本实施例中,将哈希码值进行归一化,有利于构建哈希码值与服务器的对应关系。
S404,根据计算得到的所述余数,查询预先建立的服务器列表,得到一备选服务器。
在本实施例中,服务器列表可以包括该余数与服务器的对应关系、服务器标识信息和服务器的地址等。根据由第一用户标识信息确定的余数,查询服务器列表,将获取的第一个服务器作为备选服务器。
S405,判断所述备选服务器是否为正常服务器,若是,执行S406。若否,执行S407。
S406,将所述备选服务器确定为所述目标服务器。
S407,将所述备选服务器标识为故障服务器,并在所述服务器列表中选取一正常服务器作为所述目标服务器。
在本实施例中,根据备选服务器的状态,判断是否将该备选服务器作为目标服务器。
在本实施例中,若备选服务器为故障服务器,则另选其他正常服务器作为目标服务器,将缓存内容成功存入其他正常服务器中,避免备选服务器故障而无法及时将缓存内容存储,造成数据丢失等问题。
可选的,可以选择备选服务器在服务器列表中最近的正常服务器作为新的目标服务器。或者将所述服务器列表中的第一台服务器作为新的目标服务器,或者还可以根据服务器的优先级,在所述服务器列表中选择优先级最高的正常服务器作为目标服务器,还可以选择预先设定的服务器,其中,该预先设定的服务器可靠性最高,故障发生的概率最小。对此,本发明实施例不做具体限制。
S408,通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
S409,当确定所述目标服务器缓存所述用户缓存信息失败时,将所述目标服务器标识为故障服务器。
S410,在所述分布式集群***的正常服务器中重新选择新的目标服务器,并通过所述集群通信端口,执行将所述用户缓存信息缓存于所述新的目标服务器的操作。
可选的,在所述分布式集群***的正常服务器中重新选择新的目标服务器,包括:查询所述服务器列表,在所述服务器列表中选取一正常服务器作为所述新的目标服务器。由此,根据服务器列表可以直接查询服务器的状态,快速选择一个正常服务器,作为重新确定的目标服务器,提高分布式信息的缓存***处理问题的能力以及效率。
S411,判断是否成功缓存所述用户缓存信息;若是,执行S412;若否,返回执行S409。
S412,结束流程。
在本发明实施例中,根据第一用户标识信息计算其对应的哈希码值,并根据哈希码值与服务器的对应关系,间接建立第一用户标识信息与分布式集群***中的服务器的对应关系,从而根据第一用户标识信息在预存的服务器列表中查询备选服务器,作为目标服务器,并当备选服务器为故障服务器时,重选一正常服务器作为目标服务器,可以将用户缓存信息精确存入对应的目标服务器,从而实现按照均衡负载的需求,将用户缓存信息均匀缓存在分布式集群***中,达到均衡负载的目的。
实施例五
图5是本发明实施例五提供的一种分布式信息的缓存装置的结构示意图,如图5所示,所述装置具体包括:
用户缓存信息获取模块510,用于获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;
目标服务器选择模块520,用于根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;
用户缓存信息缓存模块530,用于通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
本发明实施例根据用户缓存信息选择目标服务器,并通过分布式集群***中已有的集群通信端口作为服务器端口将用户缓存信息向目标服务器进行缓存,解决了现有技术中必须单独安装部署缓存产品,且为该缓存产品开通一个新的端口才能实现缓存分布式信息的问题,节约了宝贵的端口资源,优化了整个分布式集群***的性能,并彻底避免了单独安装部署缓存产品需要的人力成本。
进一步的,所述用户缓存信息获取模块510,用于:获取经由负载均衡***分发的所述用户缓存信息,所述负载均衡***包括:负载均衡软件和/或负载均衡硬件。
进一步的,所述装置还用于:根据所述服务器的状态分为正常服务器和故障服务器。
进一步的,所述目标服务器选择模块520具体用于:根据所述第一用户标识信息,在所述分布式集群***的正常服务器中选择与所述用户缓存信息匹配的服务器作为目标服务器。
进一步的,所述装置还包括:故障服务器标识模块,用于当确定所述目标服务器缓存所述用户缓存信息失败时,将所述目标服务器标识为故障服务器;目标服务器重新确定模块,用于在所述分布式集群***的正常服务器中重新选择新的目标服务器,并通过所述集群通信端口,执行将所述用户缓存信息缓存于所述新的目标服务器的操作;信息循环缓存模块,用于不断触发所述故障服务器标识模块以及所述目标服务器重新确定模块的执行,直至成功缓存所述用户缓存信息。
进一步的,所述目标服务器选择模块520,具体用于:计算与所述第一用户标识信息对应的标识哈希码,并得到所述标识哈希码的哈希码绝对值;计算所述哈希码绝对值除以所述分布式集群***中的服务器总数后的余数;根据计算得到的所述余数,查询预先建立的服务器列表,得到一备选服务器;如果确定所述备选服务器标识为正常服务器,则将所述备选服务器确定为所述目标服务器;如果确定所述备选服务器标识为故障服务器,则在所述服务器列表中选取一正常服务器作为所述目标服务器。
进一步的,所述目标服务器重新确定模块,具体用于:查询所述服务器列表,在所述服务器列表中选取一正常服务器作为所述新的目标服务器。
进一步的,所述装置还包括:故障服务器监听模块,用于监听故障服务器的状态;故障时间获取模块,用于当所述故障服务器由故障状态更改为正常状态时,将所述故障服务器作为目标故障服务器,并获取所述目标故障服务器的故障时间段;缓存内容同步模块,用于在执行所述方法的节点所配置的服务器中,选择与所述故障时间段对应的缓存内容同步至所述目标故障服务器;故障服务器标识修改模块,用于将所述目标故障服务器标识为正常服务器。
进一步的,所述装置还用于:获取缓存读取指令,所述缓存读取指令包括第二用户标识信息;根据所述第二用户标识信息,在所述分布式集群***的正常服务器中选择与所述缓存读取指令匹配的服务器作为读取服务器;通过所述集群通信端口,执行从所述读取服务器中读取与所述缓存读取指令匹配的缓存内容的操作;当确定从所述读取服务器中读取失败时,将所述读取服务器标识为故障服务器;在所述分布式集群***的正常服务器中重新选择一正常服务器作为新的读取服务器;返回执行通过所述集群通信端口,执行从所述读取服务器中读取与所述缓存读取指令匹配的缓存内容的操作的步骤,直至成功读取与所述缓存读取指令匹配的缓存信息。
进一步的,所述装置还包括:销毁模块,用于在确定到达预先设定的销毁时长时,在执行所述方法的节点所配置的服务器中,将存储的设定缓存内容进行销毁。
进一步的,所述装置还用于:在确定到达所述销毁时长时,向管理用户发送销毁提示信息;和/或在确定当前时间点与所述销毁时长对应的销毁时间点之间的差值小于设定时间阈值时,向管理用户发送销毁提示信息。
进一步的,所述装置由节点配置的工程文件中的,预先加入的设定jar包执行;所述jar包支持的缓存对象包括以下任一种或多种:String对象、List对象、Map对象以及自定义序列化对象。
进一步的,所述装置还包括:所述分布式集群***包括多个机器人节点;所述用户缓存信息为交互用户通过设定类型的客户端向所述机器人节点发送的交互问题。
本发明实施例所提供的分布式信息的缓存装置可执行本发明任意实施例所提供的分布式信息的缓存方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六提供的一种计算机设备的结构示意图。图6示出了适于用来实现本发明实施方式的示例性计算机设备612的框图。图6显示的计算机设备612仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机设备612以通用计算设备的形式表现。计算机设备612的组件可以包括但不限于:一个或者多个处理器或者处理单元616,***存储器628,连接不同***组件(包括***存储器628和处理单元616)的总线618。
总线618表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及***组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备612典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备612访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器628可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)630和/或高速缓存存储器632。计算机设备612可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***634可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储器628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块642的程序/实用工具640,可以存储在例如存储器628中,这样的程序模块642包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块642通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备612也可以与一个或多个外部设备614(例如键盘、指向设备、显示器624等)通信,还可与一个或者多个使得用户能与该计算机设备612交互的设备通信,和/或与使得该计算机设备612能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口622进行。并且,计算机设备612还可以通过网络适配器620与一个或者多个网络(例如局域网(LocalArea Network,LAN),广域网(Wide Area Network,WAN)通信。如图所示,网络适配器620通过总线618与计算机设备612的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机设备612使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、(Redundant Arrays of Inexpensive Disks,RAID)***、磁带驱动器以及数据备份存储***等。
处理单元616通过运行存储在***存储器628中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种分布式信息的缓存方法。
也即,所述处理单元执行所述程序时实现:获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
实施例七
本发明实施例七提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的分布式信息的缓存方法:
也即,该程序被处理器执行时实现:获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (20)

1.一种分布式信息的缓存方法,应用于分布式集群***中,其特征在于,所述方法包括:
获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;
根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;
通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
2.根据权利要求1所述的方法,其特征在于,根据所述服务器的状态分为正常服务器和故障服务器;
所述根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器,包括:
根据所述第一用户标识信息,在所述分布式集群***的正常服务器中选择与所述用户缓存信息匹配的服务器作为目标服务器。
3.根据权利要求2所述的方法,其特征在于,在通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作之后,所述方法还包括:
当确定所述目标服务器缓存所述用户缓存信息失败时,将所述目标服务器标识为故障服务器;
在所述分布式集群***的正常服务器中重新选择新的目标服务器,并通过所述集群通信端口,执行将所述用户缓存信息缓存于所述新的目标服务器的操作;
不断执行上面两个步骤直至成功缓存所述用户缓存信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一用户标识信息,在所述分布式集群***中确定与所述用户缓存信息匹配的目标服务器,包括:
计算与所述第一用户标识信息对应的标识哈希码,并得到所述标识哈希码的哈希码绝对值;
计算所述哈希码绝对值除以所述分布式集群***中的服务器总数后的余数;
根据计算得到的所述余数,查询预先建立的服务器列表,得到一备选服务器;
如果确定所述备选服务器标识为正常服务器,则将所述备选服务器确定为所述目标服务器;
如果确定所述备选服务器标识为故障服务器,则在所述服务器列表中选取一正常服务器作为所述目标服务器。
5.根据权利要求4所述的方法,其特征在于,所述在所述分布式集群***的正常服务器中重新选择新的目标服务器,包括:
查询所述服务器列表,在所述服务器列表中选取一正常服务器作为所述新的目标服务器。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
监听故障服务器的状态;
当所述故障服务器由故障状态更改为正常状态时,将所述故障服务器作为目标故障服务器,并获取所述目标故障服务器的故障时间段;
在执行所述方法的节点所配置的服务器中,选择与所述故障时间段对应的缓存内容同步至所述目标故障服务器;
将所述目标故障服务器标识为正常服务器。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取缓存读取指令,所述缓存读取指令包括第二用户标识信息;
根据所述第二用户标识信息,在所述分布式集群***的正常服务器中选择与所述缓存读取指令匹配的服务器作为读取服务器;
通过所述集群通信端口,执行从所述读取服务器中读取与所述缓存读取指令匹配的缓存内容的操作;
当确定从所述读取服务器中读取失败时,将所述读取服务器标识为故障服务器;
在所述分布式集群***的正常服务器中重新选择一正常服务器作为新的读取服务器;
返回执行通过所述集群通信端口,执行从所述读取服务器中读取与所述缓存读取指令匹配的缓存内容的操作的步骤,直至成功读取与所述缓存读取指令匹配的缓存信息。
8.根据权利要求1所述的方法,其特征在于,获取用户缓存信息,包括:
获取经由负载均衡***分发的所述用户缓存信息,所述负载均衡***包括:负载均衡软件和/或负载均衡硬件。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定到达预先设定的销毁时长时,在执行所述方法的节点所配置的服务器中,将存储的设定缓存内容进行销毁。
10.根据权利要求9所述的方法,其特征在于,在执行所述方法的节点所配置的服务器中,将存储的设定缓存内容进行销毁之前,所述方法还包括:
在确定到达所述销毁时长时,向管理用户发送销毁提示信息;和/或
在确定当前时间点与所述销毁时长对应的销毁时间点之间的差值小于设定时间阈值时,向管理用户发送销毁提示信息。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述方法由节点配置的工程文件中的,预先加入的设定jar包执行;
所述jar包支持的缓存对象包括以下任一种或多种:String对象、List对象、Map对象以及自定义序列化对象。
12.根据权利要求1-10任一项所述的方法,其特征在于,所述分布式集群***包括多个机器人节点;
所述用户缓存信息为交互用户通过设定类型的客户端向所述机器人节点发送的交互问题。
13.一种分布式信息的缓存装置,应用于分布式集群***中,其特征在于,所述装置包括:
用户缓存信息获取模块,用于获取用户缓存信息,所述用户缓存信息包括第一用户标识信息,所述分布式集群***中各节点通过集群通信端口通信,所述分布式集群***中至少两个节点配置有服务器;
目标服务器选择模块,用于根据所述第一用户标识信息,在所述分布式集群***中选择与所述用户缓存信息匹配的服务器作为目标服务器;
用户缓存信息缓存模块,用于通过所述集群通信端口,执行将所述用户缓存信息缓存于所述目标服务器的操作。
14.根据权利要求13所述的装置,其特征在于,根据所述服务器的状态分为正常服务器和故障服务器;
所述目标服务器选择模块具体用于:根据所述第一用户标识信息,在所述分布式集群***的正常服务器中选择与所述用户缓存信息匹配的服务器作为目标服务器。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
故障服务器标识模块,用于当确定所述目标服务器缓存所述用户缓存信息失败时,将所述目标服务器标识为故障服务器;
目标服务器重新确定模块,用于在所述分布式集群***的正常服务器中重新选择新的目标服务器,并通过所述集群通信端口,执行将所述用户缓存信息缓存于所述新的目标服务器的操作;
信息循环缓存模块,用于不断触发所述故障服务器标识模块以及所述目标服务器重新确定模块的执行,直至成功缓存所述用户缓存信息。
16.根据权利要求15所述的装置,其特征在于,所述目标服务器选择模块,具体用于:
计算与所述第一用户标识信息对应的标识哈希码,并得到所述标识哈希码的哈希码绝对值;
计算所述哈希码绝对值除以所述分布式集群***中的服务器总数后的余数;
根据计算得到的所述余数,查询预先建立的服务器列表,得到一备选服务器;
如果确定所述备选服务器标识为正常服务器,则将所述备选服务器确定为所述目标服务器;
如果确定所述备选服务器标识为故障服务器,则在所述服务器列表中选取一正常服务器作为所述目标服务器。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
故障服务器监听模块,用于监听故障服务器的状态;
故障时间获取模块,用于当所述故障服务器由故障状态更改为正常状态时,将所述故障服务器作为目标故障服务器,并获取所述目标故障服务器的故障时间段;
缓存内容同步模块,用于在执行所述方法的节点所配置的服务器中,选择与所述故障时间段对应的缓存内容同步至所述目标故障服务器;
故障服务器标识修改模块,用于将所述目标故障服务器标识为正常服务器。
18.根据权利要求13-17所述的装置,其特征在于,所述装置由节点配置的工程文件中的,预先加入的设定jar包执行;
所述jar包支持的缓存对象包括以下任一种或多种:String对象、List对象、Map对象以及自定义序列化对象。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-12中任一所述的分布式信息的缓存方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的分布式信息的缓存方法。
CN201810427864.XA 2018-05-07 2018-05-07 分布式信息的缓存方法、装置、计算机设备以及存储介质 Active CN108696581B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810427864.XA CN108696581B (zh) 2018-05-07 2018-05-07 分布式信息的缓存方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810427864.XA CN108696581B (zh) 2018-05-07 2018-05-07 分布式信息的缓存方法、装置、计算机设备以及存储介质

Publications (2)

Publication Number Publication Date
CN108696581A true CN108696581A (zh) 2018-10-23
CN108696581B CN108696581B (zh) 2021-08-13

Family

ID=63846151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810427864.XA Active CN108696581B (zh) 2018-05-07 2018-05-07 分布式信息的缓存方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN108696581B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669775A (zh) * 2018-12-10 2019-04-23 平安科技(深圳)有限公司 分布式任务调度方法、***及存储介质
CN109684080A (zh) * 2018-12-10 2019-04-26 平安科技(深圳)有限公司 集中式任务调度方法、***及存储介质
CN110427280A (zh) * 2019-06-19 2019-11-08 中国平安财产保险股份有限公司 一种缓存管理方法、***、计算机设备及存储介质
CN110784504A (zh) * 2019-08-29 2020-02-11 恒大智慧科技有限公司 智能分布式***部署方法、***及存储介质
CN111078147A (zh) * 2019-12-16 2020-04-28 南京领行科技股份有限公司 一种缓存数据的处理方法、装置、设备及存储介质
CN111159233A (zh) * 2019-12-18 2020-05-15 金蝶软件(中国)有限公司 分布式缓存方法、***、计算机设备以及存储介质
CN111343262A (zh) * 2020-02-20 2020-06-26 中国建设银行股份有限公司 分布式集群登录方法、装置、设备和存储介质
CN112532673A (zh) * 2019-09-19 2021-03-19 北京京东振世信息技术有限公司 消息发送方法及装置、计算机可读存储介质、电子设备
CN112749193A (zh) * 2019-10-31 2021-05-04 北京京东尚科信息技术有限公司 工作流的处理方法及装置、存储介质、电子设备
CN113590414A (zh) * 2021-06-30 2021-11-02 济南浪潮数据技术有限公司 一种服务器集群信息采集缓存方法、装置、设备及介质
CN109684080B (zh) * 2018-12-10 2024-06-25 平安科技(深圳)有限公司 集中式任务调度方法、***及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103412635A (zh) * 2013-08-02 2013-11-27 清华大学 数据中心节能方法及装置
CN106651072A (zh) * 2015-10-30 2017-05-10 苏宁云商集团股份有限公司 一种派工方法及装置
CN107979629A (zh) * 2016-10-25 2018-05-01 北京京东尚科信息技术有限公司 分布式缓存***及其数据缓存方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103412635A (zh) * 2013-08-02 2013-11-27 清华大学 数据中心节能方法及装置
CN106651072A (zh) * 2015-10-30 2017-05-10 苏宁云商集团股份有限公司 一种派工方法及装置
CN107979629A (zh) * 2016-10-25 2018-05-01 北京京东尚科信息技术有限公司 分布式缓存***及其数据缓存方法和装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684080A (zh) * 2018-12-10 2019-04-26 平安科技(深圳)有限公司 集中式任务调度方法、***及存储介质
CN109669775B (zh) * 2018-12-10 2024-06-25 平安科技(深圳)有限公司 分布式任务调度方法、***及存储介质
CN109684080B (zh) * 2018-12-10 2024-06-25 平安科技(深圳)有限公司 集中式任务调度方法、***及存储介质
CN109669775A (zh) * 2018-12-10 2019-04-23 平安科技(深圳)有限公司 分布式任务调度方法、***及存储介质
CN110427280A (zh) * 2019-06-19 2019-11-08 中国平安财产保险股份有限公司 一种缓存管理方法、***、计算机设备及存储介质
CN110427280B (zh) * 2019-06-19 2024-05-28 中国平安财产保险股份有限公司 一种缓存管理方法、***、计算机设备及存储介质
CN110784504A (zh) * 2019-08-29 2020-02-11 恒大智慧科技有限公司 智能分布式***部署方法、***及存储介质
CN112532673B (zh) * 2019-09-19 2023-12-05 北京京东振世信息技术有限公司 消息发送方法及装置、计算机可读存储介质、电子设备
CN112532673A (zh) * 2019-09-19 2021-03-19 北京京东振世信息技术有限公司 消息发送方法及装置、计算机可读存储介质、电子设备
CN112749193A (zh) * 2019-10-31 2021-05-04 北京京东尚科信息技术有限公司 工作流的处理方法及装置、存储介质、电子设备
CN111078147B (zh) * 2019-12-16 2022-06-28 南京领行科技股份有限公司 一种缓存数据的处理方法、装置、设备及存储介质
CN111078147A (zh) * 2019-12-16 2020-04-28 南京领行科技股份有限公司 一种缓存数据的处理方法、装置、设备及存储介质
CN111159233B (zh) * 2019-12-18 2024-03-08 金蝶软件(中国)有限公司 分布式缓存方法、***、计算机设备以及存储介质
CN111159233A (zh) * 2019-12-18 2020-05-15 金蝶软件(中国)有限公司 分布式缓存方法、***、计算机设备以及存储介质
CN111343262B (zh) * 2020-02-20 2022-04-29 中国建设银行股份有限公司 分布式集群登录方法、装置、设备和存储介质
CN111343262A (zh) * 2020-02-20 2020-06-26 中国建设银行股份有限公司 分布式集群登录方法、装置、设备和存储介质
CN113590414A (zh) * 2021-06-30 2021-11-02 济南浪潮数据技术有限公司 一种服务器集群信息采集缓存方法、装置、设备及介质

Also Published As

Publication number Publication date
CN108696581B (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN108696581A (zh) 分布式信息的缓存方法、装置、计算机设备以及存储介质
US11934868B2 (en) Systems and methods for scheduling tasks
US7577868B2 (en) No data loss IT disaster recovery over extended distances
CN101772918B (zh) 服务链的操作、管理和维护(oam)
CN108234191A (zh) 云计算平台的管理方法和装置
CN108777640B (zh) 一种服务器探测方法、装置、***及存储介质
US10198212B2 (en) Distributed backup system
CN105900068B (zh) 路径管理的***、装置和方法
US8543680B2 (en) Migrating device management between object managers
CN105959078A (zh) 一种集群时间同步方法、集群及时间同步***
CN110633046A (zh) 一种分布式***的存储方法、装置、存储设备及存储介质
CN104283780A (zh) 建立数据传输路径的方法和装置
CN111683139A (zh) 用于均衡负载的方法和装置
CN106909197B (zh) 一种虚拟化主机时间管理方法及虚拟化主机***
US11153173B1 (en) Dynamically updating compute node location information in a distributed computing environment
CN109474700A (zh) iSCSI客户端的接入方法、存储介质、客户端和存储节点
CN109167819A (zh) 数据同步***、方法、装置及存储介质
CN110290163A (zh) 一种数据处理方法及装置
CN106209680A (zh) 信息处理装置以及方法
CN109698774A (zh) 用于监测设备工作状态的方法及装置
EP3523928B1 (en) Method and system for managing control connections with a distributed control plane
CN111935029B (zh) 网关负载均衡方法和装置、存储介质及电子设备
CN112261079B (zh) 一种基于iSCSI的分布式块存储服务链接管理的方法及***
CN106301898B (zh) 一种配置信息的同步方法及装置
CN114138475A (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
GR01 Patent grant
GR01 Patent grant