CN105515759B - 一种微服务注册方法及系统 - Google Patents

一种微服务注册方法及系统 Download PDF

Info

Publication number
CN105515759B
CN105515759B CN201510894395.9A CN201510894395A CN105515759B CN 105515759 B CN105515759 B CN 105515759B CN 201510894395 A CN201510894395 A CN 201510894395A CN 105515759 B CN105515759 B CN 105515759B
Authority
CN
China
Prior art keywords
micro services
registration
registration center
information
log
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.)
Active
Application number
CN201510894395.9A
Other languages
English (en)
Other versions
CN105515759A (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.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Jiangsu Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Jiangsu Electric Power 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 State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, State Grid Jiangsu Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201510894395.9A priority Critical patent/CN105515759B/zh
Publication of CN105515759A publication Critical patent/CN105515759A/zh
Application granted granted Critical
Publication of CN105515759B publication Critical patent/CN105515759B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种微服务注册方法及系统,在集群中的每个节点上启动一个注册中心,包括:注册中心接收与注册中心相对应的本地的微服务所发送的注册请求信息;其中,注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;注册中心将注册信息添加到注册中心的哈希表中;注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心,本实施例提供的这种在集群中的每个节点上启动一个注册中心的方式,无需维护一个高可用的注册中心,并且其中一个注册中心宕机,也不会影响集群中的其它注册中心,有效避免了只有一个注册中心的宕机而导致系统瘫痪的风险。

Description

一种微服务注册方法及系统
技术领域
本发明涉及微服务注册技术领域,更具体地说,涉及一种微服务注册方法及系统。
背景技术
“大平台+微应用”的软件架构模式,通过将“大系统”拆解为众多“微服务”,分布式部署在多节点的集群上,实现了简化管理。目前业界多采用中心化的分布式服务架构,服务提供者将微服务注册到注册中心服务器,服务消费者从注册中心服务器取得微服务列表,一旦注册中心服务器出现问题,服务注册和发现无法生效,整个系统就会瘫痪;而且所有微服务向一个注册中心服务器进行远程注册,当微服务数量过大时,会消耗大量的网络资源并带给注册中心服务器很大的压力。
因此,如何避免当注册中心服务器出现问题而导致系统瘫痪,是现在需要解决的问题。
发明内容
本发明的目的在于提供一种微服务注册方法及系统,以避免当注册中心服务器出现问题而导致系统瘫痪。
为实现上述目的,本发明实施例提供了如下技术方案:
一种微服务注册方法,在集群中的每个节点上启动一个注册中心,包括:
注册中心接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;
所述注册中心将所述注册信息添加到所述注册中心的哈希表中;
所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心。
优选的,所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心之后,包括:
所述注册中心接收所述微服务所发送的发现请求信息;
所述注册中心将本地的哈希表中的所有微服务的注册信息拼装成数组,并计算所有微服务注册信息的第一MD5校验码,将所述数组和所述第一MD5校验码发送至所述微服务;
所述微服务接收所述数组和所述第一MD5校验码后,将所述数组保存至服务提供者列表,将所述第一MD5校验码保存至微服务容器。
优选的,所述微服务接收所述数组和所述第一MD5校验码后,将所述数组保存至服务提供者列表,将所述第一MD5校验码保存至微服务容器之后,包括:
所述注册中心接收所述微服务所发送的刷新请求信息;其中,所述刷新请求信息的URL中包含所述微服务本身的访问地址;
所述注册中心判断所述发现请求信息携带的微服务访问地址是否存在;
若是,则所述注册中心计算本地哈希表中的所有微服务注册信息的第二MD5校验码,并将所述第二MD5校验码与存活状态信息共同发送至所述微服务;若否,则所述注册中心将掉线状态信息发送至所述微服务;
其中,所述微服务接收到所述掉线状态信息后,重新向所述注册中心发送注册请求信息,直至所述注册中心向所述微服务发送存活状态信息和第二MD5校验码;
所述微服务接收到第二MD5校验码后,将所述第二MD5校验码与所述微服务容器中保存的所述第一MD5校验码进行比对;若不一致,则重新向所述注册中心发送发现请求信息。
优选的,微服务与微服务之间的调用是通过RPC实现。
优选的,所述注册中心通过Gossip协议与集群中除本注册中心之外的其他注册中心进行周期性通信,将所述注册中心中的变更注册信息进行同步变更。
一种微服务注册系统,在集群中的每个节点上启动一个注册中心,包括:
微服务和注册中心;
其中,所述注册中心包括:
第一接收模块,用于接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;
添加模块,用于将所述注册信息添加到所述注册中心的哈希表中;
同步模块,用于将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心;
所述微服务包括服务注册模块,用于向所述注册中心发送注册请求信息。
优选的,所述注册中心包括:
第二接收模块,用于接收所述微服务所发送的发现请求信息;
拼装模块,用于将本地的哈希表中的所有微服务的注册信息拼装成数组;
计算模块,用于计算所有微服务注册信息的第一MD5校验码;
第一发送模块,用于将所述数组和所述第一MD5校验码发送至所述微服务;
所述微服务包括:
服务发现模块,用于向所述注册中心发送发现请求信息;
微服务第一接收模块,用于接收所述数组和所述第一MD5校验码;
第一保存模块,用于将所述数组保存至服务提供者列表;
第二保存模块,用于将所述第一MD5校验码保存至微服务容器。
优选的,所述注册中心包括:
第三接收模块,用于接收所述微服务所发送的刷新请求信息;其中,所述刷新请求信息的URL中包含所述微服务本身的访问地址;
判断模块,用于判断所述发现请求信息携带的微服务访问地址是否存在;
若是,则触发存活状态发送模块和校验码发送模块;若否,则触发掉线状态发送模块;
所述存活状态发送模块,用于向所述微服务发送存活状态信息;
所述掉线状态发送模块,用于向所述微服务发送掉线状态信息;其中,当所述微服务接收到所述掉线状态信息后,会触发所述服务注册模块向所述注册中心发送注册请求信息;
所述验证码发送模块,用于计算本地哈希表中的所有微服务注册信息的第二MD5校验码,并将所述第二MD5校验码发送至所述微服务;
所述微服务包括:
比对模块,用于将所述第二MD5校验码与微服务容器中保存的第一MD5校验码进行比对;若不一致,则触发所述服务发现模块。
优选的,微服务与微服务之间的调用是通过RPC实现。
优选的,所述注册中心通过Gossip协议与集群中除本注册中心之外的其他注册中心进行周期性通信,将所述注册中心中的变更注册信息进行同步变更。
通过以上方案可知,本发明实施例提供的一种微服务注册方法及系统,在集群中的每个节点上启动一个注册中心,包括:注册中心接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;所述注册中心将所述注册信息添加到所述注册中心的哈希表中;所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心,本实施例提供的这种在集群中的每个节点上启动一个注册中心的方式,无需维护一个高可用的注册中心,并且其中一个注册中心宕机,也不会影响集群中的其它注册中心,有效避免了只有一个注册中心的宕机而导致系统瘫痪的风险。同时这种本地化的微服务注册和发现功能,微服务只需要向本地的注册中心进行注册,集群中不同注册中心之间同步注册信息,同步过程无需应答,有效减少了网络资源的消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种微服务注册方法流程示意图;
图2为本发明实施例公开的一种微服务注册系统结构示意图;
图3为本发明实施例公开的另一种微服务注册系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种微服务注册方法及系统,以避免当注册中心服务器出现问题而导致系统瘫痪。
参见图1,本发明实施例提供的一种微服务注册方法,在集群中的每个节点上启动一个注册中心,包括:
S101、注册中心接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;
具体的,微服务调用服务注册器进行本地注册,注册器通过JerseyClient的PUT操作发送Rest请求,请求参数是一个序列化为JSON格式的微服务对象,包含三个变量:微服务访问地址、提供哪些服务的列表、消费哪些服务的列表。
S102、所述注册中心将所述注册信息添加到所述注册中心的哈希表中;
具体的,本地本地注册中心接收到该Rest请求后,在注册中心本地的哈希表中添加该注册信息,并返回注册成功与否的状态信息。服务注册器收到应答信息后,通过状态信息判断是否注册成功。
S103、所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心。
具体的,在本实施例中,集群中不同注册中心之间同步微服务的注册信息,同步完成后每个注册中心保存的注册信息都是集群中所有微服务的注册信息,同步过程无需应答,有效减少了网络资源的消耗。
本发明实施例提供的一种微服务注册方法,在集群中的每个节点上启动一个注册中心,包括:注册中心接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;所述注册中心将所述注册信息添加到所述注册中心的哈希表中;所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心。
本实施例提供的这种去中心化的分布式服务架构,无需维护一个高可用的注册中心,而是将其分散到集群中的每个节点,在每个节点上启动一个注册中心,不同节点的多个注册中心之间没有主次之分,每个注册中心注册的微服务规模大大减小,分散了注册中心的压力,而且其中一个注册中心宕机,不会影响集群中的其它注册中心,有效避免了只有一个注册中心的宕机而导致系统瘫痪的风险。同时架构提供了本地化的微服务注册和发现功能,微服务只需要向本地的注册中心进行注册。集群中不同注册中心之间同步注册信息,同步过程无需应答,有效减少了网络资源的消耗。然后从本地注册中心取得的注册信息即为集群中注册的所有微服务信息,取得的信息作为服务提供者列表,可供微服务之间的调用使用。
优选的,在本发明的另一实施例中,所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心之后,包括:
所述注册中心接收所述微服务所发送的发现请求信息;
所述注册中心将本地的哈希表中的所有微服务的注册信息拼装成数组,并计算所有微服务注册信息的第一MD5校验码,将所述数组和所述第一MD5校验码发送至所述微服务;
所述微服务接收所述数组和所述第一MD5校验码后,将所述数组保存至服务提供者列表,将所述第一MD5校验码保存至微服务容器。
具体的,本实施例中微服务发送的发现请求信息,是为了获取所有微服务的注册信息。
具体的,微服务调用服务发现器,去本地注册中心获取所有的微服务注册信息。其中,服务发现器是通过JerseyClient的GET操作发送Rest请求,没有请求参数。注册中心接收到该Rest请求后,从本地的哈希表中获取所有微服务的注册信息,拼装成数组,然后再对所有注册信息计算MD5校验码,将数组和校验码一并返回。服务发现器接收返回数据后,将注册信息数组保存到微服务容器的哈希表中,作为服务提供者的列表,可供微服务之间的调用时使用;然后将MD5校验码保存到微服务容器中备用。
优选的,在本发明的另一实施例中,所述微服务接收所述数组和所述第一MD5校验码后,将所述数组保存至服务提供者列表,将所述第一MD5校验码保存至微服务容器之后,包括:
所述注册中心接收所述微服务所发送的刷新请求信息;其中,所述刷新请求信息的URL中包含所述微服务本身的访问地址;
所述注册中心判断所述发现请求信息携带的微服务访问地址是否存在;
若是,则所述注册中心计算本地哈希表中的所有微服务注册信息的第二MD5校验码,并将所述第二MD5校验码与存活状态信息共同发送至所述微服务;若否,则所述注册中心将掉线状态信息发送至所述微服务;
其中,所述微服务接收到所述掉线状态信息后,重新向所述注册中心发送注册请求信息,直至所述注册中心向所述微服务发送存活状态信息和第二MD5校验码;
所述微服务接收到第二MD5校验码后,将所述第二MD5校验码与所述微服务容器中保存的所述第一MD5校验码进行比对;若不一致,则重新向所述注册中心发送发现请求信息。
具体的,在本实施例中,微服务启动定时器,周期性的调用服务刷新器,主动与注册中心交互,实现心跳监测,频率可配置。其中,服务刷新器是通过JerseyClient的GET操作发送Rest请求,使用Base64编码方式对微服务本身的访问地址进行编码后添加到请求的URL中。
注册中心接收到该Rest请求后,解码URL中的地址参数,去本地的哈希表中查询该地址是否存在,如果存在,则服务注册中心认为该微服务存活,否则认为微服务已经掉线。并且当微服务处于存活状态时,还要从注册中心的本地的哈希表中获取所有微服务的注册信息后计算MD5校验码,即第二MD5校验码,最终将存活状态信息和校验码一并返回。服务刷新器接收返回数据后,判断存活状态为掉线时,去调用服务注册器重新注册,注册成功后,将本地保存的校验码与返回的校验码比对,不一致时,表明服务注册中心的注册信息发生变化,调用服务发现器去注册中心重新获取,保证微服务容器的服务提供者列表是最新的数据。
具体的,在本实施例中,微服务调用服务注册器、服务发现器、服务刷新器与本地的注册中心进行交互,实现微服务的注册、发现、刷新功能,无需占用网络资源。
具体的,在本实施例中的微服务的注册、刷新和发现功能都是在本地执行的,因此集群中每个节点都有各自的服务注册中心,其内部通过Gin框架提供Restful服务,节点启动注册中心,从而对外提供服务注册、服务刷新、服务发现三个服务。
优选的,在本发明的另一实施例中,微服务与微服务之间的调用是通过RPC实现。
具体的,微服务之间发生调用时,调用方是消费者,被调用方是生产者。它们之间的调用是通过RPC实现的,即使本地微服务之间的调用,也是走的RPC。消费者调用具体的某一个生产者时,通过负载均衡策略从服务提供者列表中获取该生产者的微服务注册信息,从注册信息中取出生产者的访问地址,然后访问生产者的RPC服务器,通过对方的RPC服务器来调用生产者的方法。
优选的,在本发明的另一实施例中,所述注册中心通过Gossip协议与集群中除本注册中心之外的其他注册中心进行周期性通信,将所述注册中心中的变更注册信息进行同步变更。
具体的,新节点启动服务注册中心后,添加到集群中时,需要指定至少一个已存在的集群节点,在添加过程中,通过TCP协议从这个已存在节点上同步所有的微服务注册信息。不同节点的服务注册中心之间,通过Gossip协议进行周期性的消息通信,而且只传播微服务注册信息的变更信息,从而实现注册信息的同步,最终集群中的所有节点的注册信息都是一致的。
下面对本发明实施例提供的微服务注册系统进行介绍,下文描述的微服务注册系统与上文描述的微服务注册方法可以相互参照。
参见图2,本发明实施例提供的一种微服务注册系统,在集群中的每个节点上启动一个注册中心,包括:
微服务100和注册中心200;
其中,所述注册中心包括:
第一接收模块201,用于接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;
添加模块202,用于将所述注册信息添加到所述注册中心的哈希表中;
同步模块203,用于将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心;
所述微服务100包括服务注册模块101,用于向所述注册中心发送注册请求信息。
需要说明的是,在本实施例中只对集群中的一个微服务和一个注册中心进行描述,其余微服务与注册中心与本实施例中的相同。
优选的,参见图3,在本发明的另一实施例中,所述注册中心200包括:
第二接收模204,用于接收所述微服务所发送的发现请求信息;
拼装模块205,用于将本地的哈希表中的所有微服务的注册信息拼装成数组;
计算模块206,用于计算所有微服务注册信息的第一MD5校验码;
第一发送模块207,用于将所述数组和所述第一MD5校验码发送至所述微服务;
所述微服务100包括:
服务发现模块102,用于向所述注册中心发送发现请求信息;
微服务第一接收模块103,用于接收所述数组和所述第一MD5校验码;
第一保存模块104,用于将所述数组保存至服务提供者列表;
第二保存模块105,用于将所述第一MD5校验码保存至微服务容器。
优选的,参见图3,在本发明的另一实施例中,所述注册中心200包括:
第三接收模块208,用于接收所述微服务所发送的刷新请求信息;其中,所述刷新请求信息的URL中包含所述微服务本身的访问地址;
判断模块209,用于判断所述发现请求信息携带的微服务访问地址是否存在;
若是,则触发存活状态发送模块210和校验码发送模块211;若否,则触发掉线状态发送模块212;
所述存活状态发送模块210,用于向所述微服务发送存活状态信息;
所述掉线状态发送模块212,用于向所述微服务发送掉线状态信息;其中,当所述微服务接收到所述掉线状态信息后,会触发所述服务注册模块向所述注册中心发送注册请求信息;
所述验证码发送模块211,用于计算本地哈希表中的所有微服务注册信息的第二MD5校验码,并将所述第二MD5校验码发送至所述微服务;
所述微服务100包括:
比对模块106,用于将所述第二MD5校验码与微服务容器中保存的第一MD5校验码进行比对;若不一致,则触发所述服务发现模块。
优选的,在本发明的另一实施例中,微服务与微服务之间的调用是通过RPC实现。
优选的,在本发明的另一实施例中,所述注册中心通过Gossip协议与集群中除本注册中心之外的其他注册中心进行周期性通信,将所述注册中心中的变更注册信息进行同步变更。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种微服务注册方法,其特征在于,在集群中的每个节点上启动一个注册中心,包括:
注册中心接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;
所述注册中心将所述注册信息添加到所述注册中心的哈希表中;
所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心;
其中,所述注册中心将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心之后,包括:
所述注册中心接收所述微服务所发送的发现请求信息;
所述注册中心将本地的哈希表中的所有微服务的注册信息拼装成数组,并计算所有微服务注册信息的第一MD5校验码,将所述数组和所述第一MD5校验码发送至所述微服务;
所述微服务接收所述数组和所述第一MD5校验码后,将所述数组保存至服务提供者列表,将所述第一MD5校验码保存至微服务容器;
其中,所述微服务接收所述数组和所述第一MD5校验码后,将所述数组保存至服务提供者列表,将所述第一MD5校验码保存至微服务容器之后,包括:
所述注册中心接收所述微服务所发送的刷新请求信息;其中,所述刷新请求信息的URL中包含所述微服务本身的访问地址;
所述注册中心判断所述刷新请求信息携带的微服务访问地址是否存在;
若是,则所述注册中心计算本地哈希表中的所有微服务注册信息的第二MD5校验码,并将所述第二MD5校验码与存活状态信息共同发送至所述微服务;若否,则所述注册中心将掉线状态信息发送至所述微服务;
其中,所述微服务接收到所述掉线状态信息后,重新向所述注册中心发送注册请求信息,直至所述注册中心向所述微服务发送存活状态信息和第二MD5校验码;
所述微服务接收到第二MD5校验码后,将所述第二MD5校验码与所述微服务容器中保存的所述第一MD5校验码进行比对;若不一致,则重新向所述注册中心发送发现请求信息。
2.根据权利要求1所述的微服务注册方法,其特征在于,微服务与微服务之间的调用是通过RPC实现。
3.根据权利要求1或2所述的微服务注册方法,其特征在于,所述注册中心通过Gossip协议与集群中除本注册中心之外的其他注册中心进行周期性通信,将所述注册中心中的变更注册信息进行同步变更。
4.一种微服务注册系统,其特征在于,在集群中的每个节点上启动一个注册中心,包括:
微服务和注册中心;
其中,所述注册中心包括:
第一接收模块,用于接收与所述注册中心相对应的本地的微服务所发送的注册请求信息;其中,所述注册请求信息携带的注册信息包括:微服务访问地址信息、服务提供信息和服务消费信息;
添加模块,用于将所述注册信息添加到所述注册中心的哈希表中;
同步模块,用于将本地的哈希表中的所有微服务的注册信息,同步到集群中除本注册中心之外的其他注册中心;
所述微服务包括服务注册模块,用于向所述注册中心发送注册请求信息;
其中,所述注册中心包括:
第二接收模块,用于接收所述微服务所发送的发现请求信息;
拼装模块,用于将本地的哈希表中的所有微服务的注册信息拼装成数组;
计算模块,用于计算所有微服务注册信息的第一MD5校验码;
第一发送模块,用于将所述数组和所述第一MD5校验码发送至所述微服务;
所述微服务包括:
服务发现模块,用于向所述注册中心发送发现请求信息;
微服务第一接收模块,用于接收所述数组和所述第一MD5校验码;
第一保存模块,用于将所述数组保存至服务提供者列表;
第二保存模块,用于将所述第一MD5校验码保存至微服务容器;
其中,所述注册中心包括:
第三接收模块,用于接收所述微服务所发送的刷新请求信息;其中,所述刷新请求信息的URL中包含所述微服务本身的访问地址;
判断模块,用于判断所述刷新请求信息携带的微服务访问地址是否存在;
若是,则触发存活状态发送模块和校验码发送模块;若否,则触发掉线状态发送模块;
所述存活状态发送模块,用于向所述微服务发送存活状态信息;
所述掉线状态发送模块,用于向所述微服务发送掉线状态信息;其中,当所述微服务接收到所述掉线状态信息后,会触发所述服务注册模块向所述注册中心发送注册请求信息;
所述校验码发送模块,用于计算本地哈希表中的所有微服务注册信息的第二MD5校验码,并将所述第二MD5校验码发送至所述微服务;
所述微服务包括:
比对模块,用于将所述第二MD5校验码与微服务容器中保存的第一MD5校验码进行比对;若不一致,则触发所述服务发现模块。
5.根据权利要求4所述的微服务注册系统,其特征在于,微服务与微服务之间的调用是通过RPC实现。
6.根据权利要求4或5所述的微服务注册系统,其特征在于,所述注册中心通过Gossip协议与集群中除本注册中心之外的其他注册中心进行周期性通信,将所述注册中心中的变更注册信息进行同步变更。
CN201510894395.9A 2015-11-27 2015-11-27 一种微服务注册方法及系统 Active CN105515759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510894395.9A CN105515759B (zh) 2015-11-27 2015-11-27 一种微服务注册方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510894395.9A CN105515759B (zh) 2015-11-27 2015-11-27 一种微服务注册方法及系统

Publications (2)

Publication Number Publication Date
CN105515759A CN105515759A (zh) 2016-04-20
CN105515759B true CN105515759B (zh) 2018-11-09

Family

ID=55723435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510894395.9A Active CN105515759B (zh) 2015-11-27 2015-11-27 一种微服务注册方法及系统

Country Status (1)

Country Link
CN (1) CN105515759B (zh)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
EP3361701B1 (en) * 2016-05-11 2021-09-01 Oracle International Corporation Multi-tenant identity and data security management cloud service
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US9838376B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Microservices based multi-tenant identity and data security management cloud service
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US9781122B1 (en) 2016-05-11 2017-10-03 Oracle International Corporation Multi-tenant identity and data security management cloud service
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
CN106254423B (zh) * 2016-07-20 2019-06-28 普元信息技术股份有限公司 基于微服务架构实现Restful服务快速发布的方法
CN106227611A (zh) * 2016-07-26 2016-12-14 北京北森云计算股份有限公司 一种多语言云编译的动态微服务调用方法及装置
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10721237B2 (en) 2016-08-05 2020-07-21 Oracle International Corporation Hierarchical processing for a virtual directory system for LDAP to SCIM proxy service
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
WO2018053258A1 (en) 2016-09-16 2018-03-22 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
CN106453288B (zh) * 2016-09-29 2019-06-04 上海和付信息技术有限公司 一种支持异步模式的分布式微服务框架系统及其实现方法
CN108011733B (zh) * 2016-10-27 2021-04-16 上海中兴软件有限责任公司 一种插件的实现方法和装置
CN106656604A (zh) * 2016-12-23 2017-05-10 郑州云海信息技术有限公司 微服务请求管理方法、微服务控制器及高并发微服务架构
CN106506703B (zh) * 2016-12-28 2018-06-08 掌阅科技股份有限公司 基于共享内存的服务发现方法、装置及系统、服务器
CN108255614A (zh) * 2016-12-28 2018-07-06 中国移动通信集团公司 一种基于微服务架构的接口调用系统及方法
CN108306917A (zh) * 2017-01-13 2018-07-20 中国移动通信集团江西有限公司 数据处理方法和装置、微服务模块的注册方法及装置
CN108632299A (zh) * 2017-03-15 2018-10-09 北京京东尚科信息技术有限公司 增强注册中心可用性的方法、装置、电子设备和存储介质
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
CN107239308B (zh) * 2017-06-05 2021-02-26 广东西奥物联网科技股份有限公司 一种浏览器的调用功能实现方法及系统
CN107770243A (zh) * 2017-09-06 2018-03-06 北京奥鹏远程教育中心有限公司 自扩展、自适应微服务平台及其应用方法
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
CN107895253A (zh) * 2017-10-25 2018-04-10 北京科东电力控制系统有限责任公司 一种电力交易功能进行微服务改造的方法
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置
CN108055157B (zh) * 2017-12-19 2021-02-23 北京奇艺世纪科技有限公司 一种服务节点的获取方法及装置
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
CN110120961B (zh) * 2018-02-06 2022-04-26 北京京东尚科信息技术有限公司 一种分布式服务集群及其路由同步的方法
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
CN108712309B (zh) * 2018-06-11 2022-03-25 郑州云海信息技术有限公司 一种微服务架构下的微服务节点防护方法和系统
CN110636093B (zh) * 2018-06-25 2022-04-26 中兴通讯股份有限公司 微服务注册和发现方法、设备、存储介质以及微服务系统
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
CN109274734B (zh) * 2018-09-07 2021-10-15 海信集团有限公司 一种基于物联网云平台的服务进程调用方法及装置
CN109040311B (zh) * 2018-09-17 2021-07-20 中国联合网络通信集团有限公司 服务信息的推送处理方法与装置
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
CN109412853B (zh) * 2018-10-31 2022-05-17 中国建设银行股份有限公司 分布式服务注册存储方法、系统、装置和存储介质
CN109587246A (zh) * 2018-12-06 2019-04-05 国云科技股份有限公司 一种集成多种通讯协议自由组合的微服务框架的实现方法
CN109618017A (zh) * 2018-12-12 2019-04-12 北京知道创宇信息技术有限公司 域名管理方法、装置及系统
CN109743367B (zh) * 2018-12-24 2021-08-17 青岛海信智能商用系统股份有限公司 服务处理方法、装置、电子设备及可读存储介质
CN109710815A (zh) * 2018-12-28 2019-05-03 东莞中国科学院云计算产业技术创新与育成中心 面向应急指挥多应用领域的数据模型处理方法和系统
CN109739552A (zh) * 2019-01-04 2019-05-10 深圳壹账通智能科技有限公司 微服务灰度发布方法、装置、计算机设备和存储介质
CN109618005B (zh) * 2019-01-18 2020-12-08 华为终端有限公司 调用服务器的方法和代理服务器
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
CN109922148B (zh) * 2019-03-04 2022-02-25 网易(杭州)网络有限公司 跨平台服务方法、装置和系统
CN110224998B (zh) * 2019-05-20 2023-04-07 平安普惠企业管理有限公司 一种微服务注册方法及装置
CN110149396B (zh) * 2019-05-20 2022-03-29 华南理工大学 一种基于微服务架构的物联网平台构建方法
CN110233886B (zh) * 2019-05-30 2021-07-20 华南理工大学 一种面向海量微服务的高可用服务治理系统及实现方法
CN110365750A (zh) * 2019-06-25 2019-10-22 苏宁云计算有限公司 服务注册系统及方法
CN112153093B (zh) * 2019-06-28 2024-04-16 北京京东尚科信息技术有限公司 基于集群的任务调度方法、装置、设备及可读存储介质
CN110278284B (zh) * 2019-07-10 2021-09-14 中国民航信息网络股份有限公司 一种服务调用方法及装置
CN110391940B (zh) * 2019-07-26 2022-09-27 广州虎牙科技有限公司 服务地址的响应方法、装置、系统、设备和存储介质
CN110505219B (zh) * 2019-08-12 2021-10-26 南京莱斯信息技术股份有限公司 基于dubbo的微服务服务注册控制管理系统及方法
CN110677347B (zh) * 2019-08-19 2021-08-17 荣邦科技有限公司 一种用于微服务的服务注册和服务发现的方法
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
CN110839029B (zh) * 2019-11-14 2021-06-25 腾讯科技(深圳)有限公司 一种微服务注册方法和装置
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
CN110990081A (zh) * 2019-12-10 2020-04-10 北京懿医云科技有限公司 微服务注册、发现方法及装置、存储介质及电子设备
CN111615066B (zh) * 2020-02-07 2021-07-16 中国海洋大学 一种基于广播的分布式微服务注册及调用方法
CN111478955B (zh) * 2020-03-31 2023-04-18 招商局金融科技有限公司 微服务注册方法、系统、装置和计算机可读存储介质
CN111641706A (zh) * 2020-05-28 2020-09-08 深圳壹账通智能科技有限公司 微服务系统创建方法、装置、电子设备及存储介质
CN112202746B (zh) * 2020-09-24 2023-04-21 北京百度网讯科技有限公司 Rpc成员信息获取方法、装置、电子设备和存储介质
CN112287329A (zh) * 2020-10-29 2021-01-29 平安科技(深圳)有限公司 服务实例校验方法、装置、电子设备及存储介质
CN112311871A (zh) * 2020-10-29 2021-02-02 山东健康医疗大数据有限公司 一种基于微服务架构的统一应用开发方法及系统
CN112380035A (zh) * 2020-11-18 2021-02-19 山东高速信息集团有限公司 一种智慧园区中台统一服务接口的实现方法及系统
CN112637126B (zh) * 2020-11-23 2023-04-07 北京中电普华信息技术有限公司 一种服务注册方法及Pod
CN114640656A (zh) * 2020-12-01 2022-06-17 博泰车联网科技(上海)股份有限公司 更新数据的方法、装置及介质
CN114640657A (zh) * 2020-12-16 2022-06-17 北京国双科技有限公司 多注册中心的融合方法、装置
CN112769922B (zh) * 2020-12-31 2022-07-12 南京视察者智能科技有限公司 一种微服务集群自启动的装置及方法
CN113505003A (zh) * 2021-04-08 2021-10-15 中国航空无线电电子研究所 无人机地面站软件的服务交互方法和无人机地面站系统
CN113157339B (zh) * 2021-04-23 2023-07-18 东云睿连(武汉)计算技术有限公司 一种基于osb的应用服务扩展方法、系统、存储介质及装置
CN113364885B (zh) * 2021-06-29 2022-11-22 天翼云科技有限公司 微服务调用方法、装置、电子设备和可读存储介质
CN114125035B (zh) * 2021-09-27 2023-08-08 烽火通信科技股份有限公司 一种大规模扩容场景下服务注册方法与装置
CN114138504A (zh) * 2021-11-15 2022-03-04 百果园技术(新加坡)有限公司 多注册中心的数据处理方法、装置、设备和存储介质
CN114553967A (zh) * 2022-01-14 2022-05-27 青岛海尔科技有限公司 一种微服务间的调用方法和相关装置
CN114615284A (zh) * 2022-03-09 2022-06-10 北京沃东天骏信息技术有限公司 集群内消息通知方法、接收方法及装置
CN114666348B (zh) * 2022-05-25 2022-11-11 广东睿江云计算股份有限公司 一种基于python语言快速构建分布式系统的方法
CN115103008B (zh) * 2022-06-13 2024-03-08 北京奇艺世纪科技有限公司 一种服务请求转发系统
CN115297156A (zh) * 2022-06-21 2022-11-04 北京结慧科技有限公司 一种微服务注册系统以及微服务注册方法
CN115665265B (zh) * 2022-12-29 2023-04-04 国家超级计算天津中心 请求处理方法、装置、设备、存储介质及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100562014C (zh) * 2005-06-22 2009-11-18 北京航空航天大学 分布式主动Web服务注册信息管理系统及其实现方法
US8407278B2 (en) * 2010-02-24 2013-03-26 Red Hat, Inc. Link-based registry federation
CN104778637A (zh) * 2014-01-10 2015-07-15 携程计算机技术(上海)有限公司 酒店数据的处理系统及方法

Also Published As

Publication number Publication date
CN105515759A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN105515759B (zh) 一种微服务注册方法及系统
CN104378304B (zh) 灰度发布的控制方法、装置及系统
KR101467173B1 (ko) M2m 네트워크의 리소스 관리 방법 및 리소스 관리 장치
US11563649B2 (en) NF service consumer restart detection using direct signaling between NFs
CN110149392A (zh) 一种推送消息的管理方法及装置
CN107404512B (zh) 资源订阅方法、资源订阅装置和资源订阅系統
US20180234493A1 (en) Elastic scale-up method and system for virtual resource in cloud computing environment, and device
CN109314675A (zh) 一种网络切片的确定方法、装置及系统
US11431587B2 (en) Systems and methods to deploy cloud-native microservices for communication services on scale
EP3326406B1 (en) Acceleration facility control in a network
EP3028207B1 (en) Communication using over-the -top identities without centralized authority
CN106937351B (zh) 一种会话实现方法及核心网元
CN114158038B (zh) 一种通信方法、装置及存储介质
CN101702673A (zh) 基于bs架构的负载均衡方法
Du et al. ML-SLD: A message-level stateless design for cloud-native 5G core network
KR102423812B1 (ko) 안정적인 분산형 M2M/IoT 서비스들의 가능화
CN104506630B (zh) 基于用户角色的权限数据生成方法、服务器及系统
CN113099449B (zh) 分布式核心网的鉴权方法和系统、归属签约用户服务器
CN101888379B (zh) 网络电视多代理服务器动态链接的方法和网络电视系统
CN116743836A (zh) 长连接通信链路建立方法及其装置、电子设备及存储介质
KR101251630B1 (ko) 푸쉬 서비스 제공 시스템 및 방법
JP2023547880A (ja) バックアップネットワーク機能を提供するためのネットワークノードおよびネットワークノードにおける方法
CN115349119A (zh) 用于在网络中部署网络功能(nf)集时的增强的5gc恢复的方法和装置
CN109905645B (zh) 视频监控设备目录交换方法和联网平台
CN107317880B (zh) 一种实现负载均衡的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant