CN108874531A - 用于熔断服务的方法、装置、***及电子设备 - Google Patents

用于熔断服务的方法、装置、***及电子设备 Download PDF

Info

Publication number
CN108874531A
CN108874531A CN201710335165.8A CN201710335165A CN108874531A CN 108874531 A CN108874531 A CN 108874531A CN 201710335165 A CN201710335165 A CN 201710335165A CN 108874531 A CN108874531 A CN 108874531A
Authority
CN
China
Prior art keywords
fusing
service
cluster
node
data
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
CN201710335165.8A
Other languages
English (en)
Other versions
CN108874531B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710335165.8A priority Critical patent/CN108874531B/zh
Publication of CN108874531A publication Critical patent/CN108874531A/zh
Application granted granted Critical
Publication of CN108874531B publication Critical patent/CN108874531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请公开一种用于熔断服务的方法、装置、***及电子设备。该方法包括:熔断服务集群获取熔断服务对象数据;将所述熔断服务对象数据写入所述熔断服务集群的节点;以及将所述熔断服务对象数据由所述节点同步至所述熔断服务集群的全部节点。本申请的用于熔断服务的方法、装置、***及电子设备,能够保证熔断服务的高可用性以及熔断服务的实时性。

Description

用于熔断服务的方法、装置、***及电子设备
技术领域
本发明涉及服务器信息处理领域,具体而言,涉及一种用于熔断服务的方法、装置、***及电子设备。
背景技术
在大型的分布式***中,通常需要调用或操作远程的服务或者资源,这些远程的服务或者资源由于调用者不可控的原因,比如网络连接缓慢,资源被占用或者暂时不可用等原因,导致对这些远程资源的调用失败。这些错误通常在稍后的一段时间内可以恢复正常。但是,在某些情况下,由于一些无法预知的原因导致结果很难预料,远程的方法或者资源可能需要很长的一段时间才能修复。这种错误严重到***的部分失去响应甚至导致整个服务的完全不可用。在这种情况下,采用不断地重试可能解决不了问题,相反,应用程序在这个时候应该立即返回并且报告错误。熔断服务可以防止应用程序不断地尝试执行可能会失败的操作,使得应用程序继续执行而不用等待修正错误,或者浪费CPU时间去等到长时间的超时产生。熔断服务也可以使应用程序能够诊断错误是否已经修正,如果已经修正,应用程序会再次尝试调用操作。
在现有技术中,熔断服务可例如通过如下几种方式实现:1、基于配置文件的熔断服务:应用启动后,服务加载配置文件中的熔断列表,提供静态的熔断服务。优点:本地加载,无网络开销。缺点:无法在应用运行的同时更新熔断列表,集群间应用无法共享熔断列表。2、基于数据库的熔断服务:通过查询数据库,获取针对某个服务的熔断列表。优点:可以根据需求动态调整熔断列表内容。缺点:被动轮询数据库,网络开销增大,占用数据库连接,数据库出现单点故障后,熔断服务即告失败,集群间应用无法共享熔断列表。3、基于缓存的熔断服务:逻辑与数据库相似,数据库方案的升级版本。优点:减轻对数据库的访问压力,提高获取熔断列表的效率。缺点:参照数据库模式。
基于以上种种问题,目前需要一种新的用于熔断服务的方法、装置、***及电子设备。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种用于熔断服务的方法、装置、***及电子设备,能够保证熔断服务的高可用性以及熔断服务的实时性。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提出一种用于熔断服务的方法,该方法包括:熔断服务集群获取熔断服务对象数据;将熔断服务对象数据写入熔断服务集群的节点;以及将熔断服务对象数据由节点同步至熔断服务集群的全部节点。
在本公开的一种示例性实施例中,还包括:通过分布式配置信息储存中间件建立熔断服务集群。
在本公开的一种示例性实施例中,将熔断服务对象数据写入熔断服务集群的节点,包括:将熔断服务对象数据以persistent模式写入熔断服务集群的节点。
在本公开的一种示例性实施例中,熔断服务集群包括2N+1台服务器,N为正整数。
在本公开的一种示例性实施例中,还包括:通过熔断服务对象数据生成服务熔断列表。
根据本发明的一方面,提出一种用于熔断服务的方法,该方法包括:通过熔断服务集群获取并保存服务熔断列表至本地内存;通过熔断服务集群获取并保存服务熔断列表至本地内存;接收来自客户端的应用服务请求;以及根据服务熔断列表,确定应用服务请求的接入情况。
在本公开的一种示例性实施例中,还包括:监听熔断服务集群的节点消息;以及在熔断服务集群的节点变化时,根据节点状态更新本地内存中的服务熔断列表。
在本公开的一种示例性实施例中,还包括:将熔断服务配置为***的形式。
在本公开的一种示例性实施例中,监听熔断服务集群的节点消息,包括:与熔断服务集群建立长连接;以及通过长连接监听熔断服务集群的节点消息。
在本公开的一种示例性实施例中,长连接为socket长连接。
根据本发明的一方面,提出一种用于熔断服务的装置,该装置包括:数据模块,用于熔断服务集群获取熔断服务对象数据;写入模块,用于将熔断服务对象数据写入熔断服务集群的节点;以及同步模块,用于将熔断服务对象数据由节点同步至熔断服务集群的全部节点。
根据本发明的一方面,提出一种用于熔断服务的装置,该装置包括:保存模块,用于通过熔断服务集群获取并保存服务熔断列表至本地内存;接收模块,用于接收来自客户端的应用服务请求;以及判断模块,用于根据服务熔断列表,确定应用服务请求的接入情况。
根据本发明的一方面,提出一种电子设备,该装置包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文任一的方法。
根据本发明的一方面,提出一种电子设备,该装置包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文任一的方法。
根据本发明的一方面,提出一种用于熔断服务的***,该***包括:第一电子设备,包括处理器;存储器,存储用于处理器控制如上文的操作的指令;以及第二电子设备,包括处理器;存储器,存储用于处理器控制如上文的操作的指令。
根据本发明的用于熔断服务的方法、装置、***及电子设备,能够能够保证熔断服务的高可用性以及熔断服务的实时性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种用于熔断服务的方法的流程图。
图2是根据另一示例性实施例示出的一种用于熔断服务的方法的流程图。
图3是根据一示例性实施例示出的一种用于熔断服务的方法的示意图。
图4是根据一示例性实施例示出的一种用于熔断服务的装置的框图。
图5是根据另一示例性实施例示出的一种用于熔断服务的装置的框图。
图6是根据一示例性实施例示出的一种用于熔断服务的***的框图。
图7是根据一示例性实施例示出的一种用于熔断服务的电子设备的框图。
图8是根据另一示例性实施例示出的一种用于熔断服务的电子设备的框图。
具体实施例
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
下面结合附图对本公开示例实施方式进行详细说明。
图1是根据一示例性实施例示出的一种用于熔断服务的方法的流程图。
如图1所示,在S102中,熔断服务集群获取熔断服务对象数据。在本发明实施例中,熔断服务集群可例如通过分布式配置信息储存中间件建立。分布式配置信息储存中间件可例如为:ZooKeeper,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。在本公开的一种示例性实施例中,熔断服务集群包括2N+1台服务器,N为正整数。可例如,搭建熔断服务集群的网络拓扑如下:选择2N+1台电脑作为zookeeper服务器(可例如选择3台或5台),安装zookeeper服务,zookeeper会自动选举出一个leader负责zookeeper集群管理。
在S104中,将熔断服务对象数据写入熔断服务集群的节点。可例如,通过查询数据库,获取针对某个服务的熔断服务对象数据。还可例如通过人工指定熔断服务对象数据。在Zookeeper中,znode是一个跟Unix文件***路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper里,Zookeeper使用Watcher察觉事件信息。当客户端接收到事件信息,比如连接超时、节点数据改变、子节点改变,可以调用相应的行为来处理数据。Zookeeper的Wiki页面展示了如何使用Zookeeper来处理事件通知,队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交。在本实施例中,可例如,将熔断服务对象数据写入Zookeeper中的znode节点中。
在S106中,将熔断服务对象数据由节点同步至熔断服务集群的全部节点。ZooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法,ZAB(ZooKeeper Atomic Broadcast)全称为:原子消息广播协议。ZAB协议设计了支持崩溃恢复,ZooKeeper使用单一主进程Leader用于处理客户端所有事务请求,采用ZAB协议将服务器数状态以事务形式广播到所有Follower上;由于事务间可能存在着依赖关系,ZAB协议保证Leader广播的变更序列被顺序的处理,一个状态被处理那么它所依赖的状态也已经提前被处理;ZAB协议支持的崩溃恢复可以保证在Leader进程崩溃的时候可以重新选出Leader并且保证数据的完整性。在本发明实施例中,可例如,通过ZAB协议将数据同步至集群中的所有节点中。
根据本发明的用于熔断服务的方法,利用熔断服务集群提供熔断服务的方式,能够保证熔断服务的高可用性以及熔断服务的实时性。
应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施例。
在本公开的一种示例性实施例中,还包括:通过分布式配置信息储存中间件建立熔断服务集群。分布式配置信息储存中间件可例如为:ZooKeeper,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一***的状态。在本发明实施例中,分布式是指一组电脑通过网络相互链接传递消息与通信后并协调它们的行为而形成的***。在本发明实施例中,可例如,通过Zookeeper建立熔断服务集群,熔断服务如上文,是为了应用提供熔断的服务器。在本发明实施例中,集群是指,通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。
根据本发明的用于熔断服务的方法,通过利用分布式配置信息储存中间件建立熔断服务集群的方式,能够为应用客户端提供分布式的,开放源码的熔断服务。
在本公开的一种示例性实施例中,还包括:获取更新的熔断服务对象数据,并将更新的数据写入熔断服务集群的节点;以及将更新的数据同步至全部节点。
在本公开的一种示例性实施例中,还包括:将所述熔断服务对象数据同步至全部节点。数据部署在zookeeper集群所有节点上,如果出现一台或几台zookeeper宕机,zookeeper集群会立刻整合剩余节点对外保证数据服务。如果宕机的是follower,zookeeper会摒弃故障follower继续对外提供服务;如果宕机的是leader,zookeeper集群会重新选举出一个leader管理剩余正常的zookeeper集群并对外提供服务。如果zookeeper集群宕机,应用依然可以使用本地内存的熔断列表继续保证熔断服务正常运行,直至zookeeper集群重新启动,并重新同步集群节点与本地内存的熔断列表。
在本公开的一种示例性实施例中,所述将所述熔断服务对象数据写入所述熔断服务集群的节点,包括:将所述熔断服务对象数据以persistent模式写入所述熔断服务集群的节点。在本公开的一种示例性实施例中,还包括:通过熔断服务对象数据生成服务熔断列表。
根据本发明的用于熔断服务的方法,通过zookeeper集群维护熔断服务列表,可以有效避免单点故障对应用造成的不可恢复性影响。
图2是根据另一示例性实施例示出的一种用于熔断服务的方法的流程图。
如图2所示,在S202中,通过熔断服务集群获取并保存服务熔断列表至本地内存。熔断服务集群可例如通过分布式配置信息储存中间件建立。还可例如,应用服务可例如通过服务器集群实现,可例如通过N台服务器部署应用,可根据需求设定应用的集群数量。应用服务还可例如直接通过服务器实现,本发明不以此为限。
在S204中,接收来自客户端的应用服务请求。
在S206中,根据所述服务熔断列表,确定所述应用服务请求的接入情况。在本公开的一种示例性实施例中,所述根据熔断服务列表,确定所述应用服务请求的接入情况,包括:根据所述熔断服务列表,判断是否允许所述应用服务请求接入;以及如果不允许所述应用服务请求接入,则返回异常提示消息。当有客户端访问受熔断服务保护的接口时,根据***配置原则,熔断服务率先接入,根据本地内存中的熔断列表判断是否允许其继续访问接入,如被拒绝,则以异常的形式返回内容,如被允许,则继续访问接口直至数据正常返回。
根据本发明的用于熔断服务的方法,通过内存中的熔断服务列表判断应用访问接入情况,能够减少在非业务功能开发上的人员投入,开发人员无需在每次需要熔断列表的时候主动轮询数据库或缓存,只需要读取内存列表即可。
在本公开的一种示例性实施例中,还包括:监听熔断服务集群的节点消息;以及在熔断服务集群的节点变化时,根据节点状态更新本地内存中的服务熔断列表。在本公开的一种示例性实施例中,所述监听所述熔断服务集群的节点消息,包括:与所述熔断服务集群建立长连接;以及通过所述长连接监听所述熔断服务集群的节点消息。长连接可例如为socket长连接。当熔断服务集群中服务熔断列表更新时,会导致zookeeper节点发生变化,此时与zookeeper保有socket长连接监听的应用便会相应地接收到节点状态变化通知,应用根据节点状态改变本地内存中的服务熔断列表内容。因为zookeeper满足最终一致性的数据同步协议,因此在***监听到节点发生变化前,zookeeper集群中所有节点都已经完成了数据同步,因此zookeeper集群对外提供的数据不会出现差异现象。
在本公开的一种示例性实施例中,还包括:将熔断服务配置为***的形式。将熔断服务以***的形式配置在应用中,根据需求,将需要熔断服务保护的接口纳入拦截范围。
根据本发明的用于熔断服务的方法,通过熔断列表获取由频繁建立短连接改为长连接监听,实现列表数据的实时监听,避免无效请求。
图3是根据一示例性实施例示出的一种用于熔断服务的方法的示意图。如图3所述,熔断服务集群与应用服务可建立如图所示的网络拓扑结构图。
通过使用有事务保证的分布式配置信息存储中间件(zookeeper)与本地内存实时通信,对外提供基于事件通知机制的、本地的、实时的服务熔断列表,业务***根据服务熔断列表制定具体的熔断策略,避免出现现有技术中描述的被动拉取、带宽占用、频繁交互和单点故障、集群间不同步等问题。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图4是根据一示例性实施例示出的一种用于熔断服务的装置的框图。
数据模块402用于熔断服务集群获取熔断服务对象数据。
写入模块404用于将所述熔断服务对象数据写入所述熔断服务集群的节点。
同步模块406用于将所述熔断服务对象数据由所述节点同步至所述熔断服务集群的全部节点。
根据本发明的用于熔断服务的装置,利用熔断服务集群提供熔断服务的方式,能够保证熔断服务的高可用性以及熔断服务的实时性。
图5是根据另一示例性实施例示出的一种用于熔断服务的装置的框图。
保存模块502用于通过熔断服务集群获取并保存服务熔断列表至本地内存;
接收模块504用于接收来自客户端的应用服务请求。
判断模块506用于根据服务熔断列表,确定应用服务请求的接入情况。
根据本发明的用于熔断服务的装置,通过熔断服务列表判断应用访问接入情况,能够减少在非业务功能开发上的人员投入,开发人员无需在每次需要熔断列表的时候主动轮询数据库或缓存,只需要读取内存列表即可。
图6是根据一示例性实施例示出的一种用于熔断服务的***的框图。
图6示意性示出根据本发明示例实施例的用于熔断服务的***60。该***可例如利用如图1、2所示的用于熔断服务的方法来实现,但本发明不限于此。如图所示,用于熔断服务的***60,该***可例如包括:第一电子设备可例如为应用服务***602,第二电子设备可例如为熔断服务集群604。
应用服务***602将熔断服务以***的形式配置在应用中,根据需求,将需要熔断服务保护的接口纳入拦截范围。
熔断服务集群604通过zookeeper管理端将熔断对象以persistent模式写入zookeeper某个节点,根据Zab协议zookeeper会保证将写入的数据成功的同步到集群中的所有节点。当管理端更新服务熔断列表时,会导致zookeeper节点发生变化,此时与zookeeper保有socket长连接监听的应用便会相应地接收到节点状态变化通知,应用根据节点状态改变本地内存中的服务熔断列表内容。
客户端606访问受熔断服务保护的接口时,根据***配置原则,熔断服务率先接入,根据本地内存中的熔断列表判断是否允许其继续访问接入,如被拒绝,则以异常的形式返回内容,如被允许,则继续访问接口直至数据正常返回。
根据本发明的用于熔断服务的***,能够减轻应用在非业务领域对数据库、缓存的频繁访问。实现熔断服务动态配置。保证熔断服务高可用。保证熔断服务实时性。能够为分布式、集群应用共享熔断列表。
图7是根据一示例性实施例示出的一种用于熔断服务的电子设备的框图。
下面参考图7,其示出了适于用来实现本申请实施例的电子设备70的结构示意图。图7示出的电子设设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机***70包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有***70操作所需的各种程序和数据。CPU701、ROM702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的***中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,发送单元还可以被描述为“向所连接的服务端发送图片获取请求的单元”。
图8是根据另一示例性实施例示出的一种用于熔断服务的电子设备的框图。图8所述的设备框图的描述同上文所述,在此不再赘述。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。
通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的用于熔断服务的方法、装置、***及电子设备具有以下优点中的一个或多个。
根据一些实施例,本发明的用于熔断服务的方法,通过利用分布式配置信息储存中间件建立熔断服务集群,利用熔断服务集群提供熔断服务的方式,能够保证熔断服务的高可用性以及熔断服务的实时性。
根据另一些实施例,本发明的用于熔断服务的方法,通过熔断服务列表判断应用访问接入情况,能够减少在非业务功能开发上的人员投入,开发人员无需在每次需要熔断列表的时候主动轮询数据库或缓存,只需要读取内存列表即可。
根据再一些实施例,本发明的用于熔断服务的方法,熔断列表获取由频繁建立短连接改为长连接监听,实现列表数据的实时监听,避免无效请求。
以上具体地示出和描述了本发明的示例性实施例。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
此外,本说明书说明书附图所示出的结构、比例、大小等,均仅用以配合说明书所公开的内容,以供本领域技术人员了解与阅读,并非用以限定本公开可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本公开所能产生的技术效果及所能实现的目的下,均应仍落在本公开所公开的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“第一”、“第二”及“一”等的用语,也仅为便于叙述的明了,而非用以限定本公开可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当也视为本发明可实施的范畴。

Claims (15)

1.一种用于熔断服务的方法,其特征在于,包括:
熔断服务集群获取熔断服务对象数据;
将所述熔断服务对象数据写入所述熔断服务集群的节点;以及
将所述熔断服务对象数据由所述节点同步至所述熔断服务集群的全部节点。
2.如权利要求1所述的方法,其特征在于,还包括:
通过分布式配置信息储存中间件建立所述熔断服务集群。
3.如权利要求1所述的方法,其特征在于,所述将所述熔断服务对象数据写入所述熔断服务集群的节点,包括:
将所述熔断服务对象数据以persistent模式写入所述熔断服务集群的节点。
4.如权利要求1所述的方法,其特征在于,所述熔断服务集群包括2N+1台服务器,N为正整数。
5.如权利要求1所述的方法,其特征在于,还包括:
通过所述熔断服务对象数据生成服务熔断列表。
6.一种用于熔断服务的方法,其特征在于,包括:
通过熔断服务集群获取并保存服务熔断列表至本地内存;
接收来自客户端的应用服务请求;以及
根据所述服务熔断列表,确定所述应用服务请求的接入情况。
7.如权利要求6所述的方法,其特征在于,还包括:
监听所述熔断服务集群的节点消息;以及
在所述熔断服务集群的所述节点变化时,根据所述节点状态更新本地内存中的所述服务熔断列表。
8.如权利要求6所述的方法,其特征在于,还包括:
将熔断服务配置为***的形式。
9.如权利要求7所述的方法,其特征在于,所述监听所述熔断服务集群的节点消息,包括:
与所述熔断服务集群建立长连接;以及
通过所述长连接监听所述熔断服务集群的节点消息。
10.如权利要求9所述的方法,其特征在于,所述长连接为socket长连接。
11.一种用于熔断服务的装置,其特征在于,包括:
数据模块,用于熔断服务集群获取熔断服务对象数据;
写入模块,用于将所述熔断服务对象数据写入所述熔断服务集群的节点;以及
同步模块,用于将所述熔断服务对象数据由所述节点同步至所述熔断服务集群的全部节点。
12.一种用于熔断服务的装置,其特征在于,包括:
保存模块,用于通过熔断服务集群获取并保存服务熔断列表至本地内存;
接收模块,用于接收来自客户端的应用服务请求;以及
判断模块,用于根据所述服务熔断列表,确定所述应用服务请求的接入情况。
13.一种用于熔断服务的***,其特征在于,包括:
第一电子设备,包括处理器;存储器,存储用于所述处理器控制如权利要求1-5任一项所述的操作的指令;以及
第二电子设备,包括处理器;存储器,存储用于所述处理器控制如权利要求6-10任一项所述的操作的指令。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求6-10中任一所述的方法。
CN201710335165.8A 2017-05-12 2017-05-12 用于熔断服务的方法、装置、***及电子设备 Active CN108874531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710335165.8A CN108874531B (zh) 2017-05-12 2017-05-12 用于熔断服务的方法、装置、***及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710335165.8A CN108874531B (zh) 2017-05-12 2017-05-12 用于熔断服务的方法、装置、***及电子设备

Publications (2)

Publication Number Publication Date
CN108874531A true CN108874531A (zh) 2018-11-23
CN108874531B CN108874531B (zh) 2021-08-03

Family

ID=64320013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710335165.8A Active CN108874531B (zh) 2017-05-12 2017-05-12 用于熔断服务的方法、装置、***及电子设备

Country Status (1)

Country Link
CN (1) CN108874531B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109743358A (zh) * 2018-12-13 2019-05-10 平安普惠企业管理有限公司 异步消息接口熔断控制方法、装置、计算机设备及存储介质
CN109766210A (zh) * 2019-01-17 2019-05-17 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群
CN110460639A (zh) * 2019-07-12 2019-11-15 口碑(上海)信息技术有限公司 服务器集群的熔断处理方法、装置及***
CN112667437A (zh) * 2020-12-23 2021-04-16 北京浪潮数据技术有限公司 一种多副本分布式集群恢复方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977124A (zh) * 2010-11-05 2011-02-16 山东中创软件工程股份有限公司 基于ZooKeeper技术的业务集群方法及***
CN102929696A (zh) * 2012-09-28 2013-02-13 北京搜狐新媒体信息技术有限公司 一种分布式***中心节点构建、提交、监控方法及装置
CN103312809A (zh) * 2013-06-24 2013-09-18 北京汉柏科技有限公司 云平台中服务的分布式管理方法
CN103500111A (zh) * 2013-10-11 2014-01-08 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
CN105072139A (zh) * 2015-06-26 2015-11-18 腾讯科技(深圳)有限公司 推荐方法和装置
US20160065680A1 (en) * 2014-08-26 2016-03-03 rift.IO, Inc. Multi-node distributed network access server designed for large scalability
CN106453501A (zh) * 2016-09-09 2017-02-22 北京奇虎科技有限公司 一种修改服务的配置信息的方法和装置
CN106445651A (zh) * 2015-08-07 2017-02-22 北京京东尚科信息技术有限公司 执行任务的方法及***
CN106603281A (zh) * 2016-12-07 2017-04-26 乐视控股(北京)有限公司 配置文件管理方法及***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977124A (zh) * 2010-11-05 2011-02-16 山东中创软件工程股份有限公司 基于ZooKeeper技术的业务集群方法及***
CN102929696A (zh) * 2012-09-28 2013-02-13 北京搜狐新媒体信息技术有限公司 一种分布式***中心节点构建、提交、监控方法及装置
CN103312809A (zh) * 2013-06-24 2013-09-18 北京汉柏科技有限公司 云平台中服务的分布式管理方法
CN103500111A (zh) * 2013-10-11 2014-01-08 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
US20160065680A1 (en) * 2014-08-26 2016-03-03 rift.IO, Inc. Multi-node distributed network access server designed for large scalability
CN105072139A (zh) * 2015-06-26 2015-11-18 腾讯科技(深圳)有限公司 推荐方法和装置
CN106445651A (zh) * 2015-08-07 2017-02-22 北京京东尚科信息技术有限公司 执行任务的方法及***
CN106453501A (zh) * 2016-09-09 2017-02-22 北京奇虎科技有限公司 一种修改服务的配置信息的方法和装置
CN106603281A (zh) * 2016-12-07 2017-04-26 乐视控股(北京)有限公司 配置文件管理方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STEPHEN SKEIRIK等: "Formal Analysis of Fault-tolerant Group Key Management using ZooKeeper", 《2013 13TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD, AND GRID COMPUTING》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109743358A (zh) * 2018-12-13 2019-05-10 平安普惠企业管理有限公司 异步消息接口熔断控制方法、装置、计算机设备及存储介质
CN109743358B (zh) * 2018-12-13 2022-10-21 平安普惠企业管理有限公司 异步消息接口熔断控制方法、装置、计算机设备及存储介质
CN109766210A (zh) * 2019-01-17 2019-05-17 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群
CN109766210B (zh) * 2019-01-17 2022-04-22 多点生活(成都)科技有限公司 服务熔断控制方法、服务熔断控制装置和服务器集群
CN110460639A (zh) * 2019-07-12 2019-11-15 口碑(上海)信息技术有限公司 服务器集群的熔断处理方法、装置及***
CN112667437A (zh) * 2020-12-23 2021-04-16 北京浪潮数据技术有限公司 一种多副本分布式集群恢复方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN108874531B (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
CN108874531A (zh) 用于熔断服务的方法、装置、***及电子设备
CN111091429A (zh) 电子票据标识分配方法及装置、电子票据生成***
CN114363407B (zh) 消息服务方法及装置、可读存储介质及电子设备
CN109783151B (zh) 规则变更的方法和装置
CN112069265A (zh) 配置数据的同步方法、业务数据***、计算机***和介质
CN110532322B (zh) 运维交互方法、***、计算机可读存储介质及设备
CN106161644A (zh) 数据处理的分布式***及其数据处理方法
CN110351366A (zh) 一种互联网应用的服务调度方法、***及计算机可读存储介质
CN113778615B (zh) 一种快速稳定的网络靶场虚拟机构建***
CN110019539A (zh) 一种数据仓库的数据同步的方法和装置
CN111510480A (zh) 一种请求发送方法、装置以及第一服务器
CN111405061B (zh) 一种基于Dubbo框架的微服务停机方法及服务器
CN111245939B (zh) 数据同步方法、装置和***
CN105939384A (zh) 网络请求处理方法及***
CN109284177B (zh) 一种数据更新方法和装置
CN112988800B (zh) 一种基于分布式环境的数据处理方法和装置
CN112187916B (zh) 一种跨***的数据同步方法与装置
CN114070889A (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN114756227A (zh) 一种资源发布的处理方法和装置
CN112463887A (zh) 一种数据处理方法、装置、设备及存储介质
CN109547552A (zh) Api请求处理方法、装置、存储介质及电子设备
CN112015745B (zh) 一种数据管理方法及装置
CN114510282B (zh) 一种自动化应用的运行方法、装置、设备以及存储介质
CN111833036B (zh) 判断重复交易的方法、装置、设备和计算机可读介质
CN112596922B (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