CN108366102A - 一种基于Consul的服务发现方法、装置及电子设备 - Google Patents

一种基于Consul的服务发现方法、装置及电子设备 Download PDF

Info

Publication number
CN108366102A
CN108366102A CN201810076946.4A CN201810076946A CN108366102A CN 108366102 A CN108366102 A CN 108366102A CN 201810076946 A CN201810076946 A CN 201810076946A CN 108366102 A CN108366102 A CN 108366102A
Authority
CN
China
Prior art keywords
server
service list
service
downstream
consul
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.)
Pending
Application number
CN201810076946.4A
Other languages
English (en)
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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201810076946.4A priority Critical patent/CN108366102A/zh
Publication of CN108366102A publication Critical patent/CN108366102A/zh
Pending legal-status Critical Current

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/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供了一种基于Consul的服务发现方法、装置及电子设备,包括:向Consul服务端发送服务发现请求;接收所述Consul服务端返回的服务列表;所述服务列表中包括当前可用的各下游可用服务器的网络地址信息和性能权重信息,所述性能权重信息表征所述下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。

Description

一种基于Consul的服务发现方法、装置及电子设备
技术领域
本发明涉及通信技术领域,特别是涉及一种基于Consul的服务发现方法、装置及电子设备。
背景技术
Consul是一种支持多数据中心分布式高可用的服务发现软件,整个系统操作方便,易于应用。
现有的Consul软件的主要作用是接收下游服务器发送的服务注册请求,生成包含各下游服务器的网络地址信息的服务列表,并将上述服务列表发送至上游服务器。
发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
由于现有Consul软件生成的服务列表中只包含各可用的下游服务器的网络地址信息,因此,上游服务器在接收到上述服务列表后,只能获知各下游服务器的网络地址信息,即存在可获知的下游服务器的属性信息不够丰富的问题,进一步,仅基于下游服务器的网络地址信息进行业务分配,还可能会导致业务分配不合理的问题。
发明内容
本发明实施例的目的在于提供一种基于Consul的服务发现方法、装置及电子设备,以解决现有技术中存在的上游服务器在针对下游服务器进行服务发现时,可获知的下游服务器的属性信息不够丰富的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种基于Consul的服务发现方法,应用于上游服务器,包括:
向Consul服务端发送服务发现请求;
接收所述Consul服务端返回的服务列表,所述服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力。
进一步的,在所述接收所述Consul服务端返回的服务列表信息之后,所述方法还包括:
对所述服务列表进行本地存储;
当出现无法从所述Consul服务端获取新的服务列表的情况时,获取本地存储的最新的服务列表,用于向下游服务器分配业务处理请求。
进一步的,在所述接收所述Consul服务端返回的服务列表之后,所述方法还包括:
基于所述服务列表中包括的下游服务器的所述性能权重,确定负载均衡策略,所述负载均衡策略用于向所述服务列表中包括的各下游服务器分配业务处理请求。
进一步的,所述方法还包括:
在接收到业务处理请求后,根据所述负载均衡策略,从所述服务列表中确定用于处理所述业务处理请求的下游服务器;
基于确定出的该下游服务器的网络地址信息,将所述业务处理请求分配给确定出的下游服务器。
第二方面,本发明实施例提供了一种基于Consul的服务发现方法,应用于Consul服务端,包括:
接收下游服务器发送的服务注册请求,所述服务注册请求中携带所述下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力;
生成服务列表,所述服务列表中包括所述下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重;
在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至所述上游服务器。
进一步的,在所述生成服务列表之后,所述方法还包括:
当确定出最新生成的服务列表中下游服务器发生异常时,从服务列表中删除发生异常的该下游服务器的网络地址信息和性能权重,得到新的服务列表。
进一步的,采用如下步骤确定最新生成的服务列表中的下游服务器是否发生异常:
基于心跳检测确定最新生成的服务列表中的下游服务器是否发生异常;
或者,
在接收到下游服务器发送的表示该下游服务器发生异常的异常消息后,确定该下游服务器发生异常。
第三方面,本发明实施例提供了一种基于Consul的服务发现装置,位于上游服务器,包括:
请求发送模块,用于向Consul服务端发送服务发现请求;
服务列表接收模块,用于接收所述Consul服务端返回的服务列表,所述服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力。
进一步的,所述装置还包括:
服务列表存储模块,用于对所述服务列表进行本地存储;
服务列表获取模块,用于当出现无法从所述Consul服务端获取新的服务列表的情况时,获取本地存储的最新的服务列表,用于向下游服务器分配业务处理请求。
进一步的,所述装置还包括:
策略确定模块,用于基于所述服务列表中包括的下游服务器的所述性能权重,确定负载均衡策略,所述负载均衡策略用于向所述服务列表中包括的各下游服务器分配业务处理请求。
进一步的,所述装置还包括:
下游服务器确定模块,用于在接收到业务处理请求后,根据所述负载均衡策略,从所述服务列表中确定用于处理所述业务处理请求的下游服务器;
处理请求分配模块,用于基于确定出的该下游服务器的网络地址信息,将所述业务处理请求分配给确定出的下游服务器。
第四方面,本发明实施例提供了一种基于Consul的服务发现装置,位于Consul服务端,包括:
注册请求接收模块,用于接收下游服务器发送的服务注册请求,所述服务注册请求中携带所述下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力;
服务列表生成模块,用于生成服务列表,所述服务列表中包括所述下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重;
服务列表发送模块,用于在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至所述上游服务器。
进一步的,所述装置还包括:
服务列表更新模块,用于当确定出最新生成的服务列表中下游服务器发生异常时,从服务列表中删除发生异常的该下游服务器的网络地址信息和性能权重,得到新的服务列表。
进一步的,所述装置还包括:
异常确定模块,用于基于心跳检测确定最新生成的服务列表中的下游服务器是否发生异常;或者,在接收到下游服务器发送的表示该下游服务器发生异常的异常消息后,确定该下游服务器发生异常。
第五方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一应用于上游服务器的基于Consul的服务发现方法的步骤。
第六方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一应用于Consul服务端的基于Consul的服务发现方法的步骤。
第七方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的应用于上游服务器的基于Consul的服务发现方法。
第八方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的应用于Consul服务端的基于Consul的服务发现方法。
第九方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的应用于上游服务器的基于Consul的服务发现方法。
第十方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的应用于Consul服务端的基于Consul的服务发现方法。
本发明实施例提供的基于Consul的服务发现方法中,首先,向Consul服务端发送服务发现请求;然后接收所述Consul服务端返回的服务列表;所述服务列表中包括当前可用的各下游可用服务器的网络地址信息和性能权重信息,所述性能权重信息表征所述下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一个实施例提供的基于Consul的服务发现方法的流程示意图;
图2为本发明又一个实施例提供的基于Consul的服务发现方法的流程示意图;
图3为本发明又一个实施例提供的基于Consul的服务发现方法的流程示意图;
图4为本发明一个实施例提供的基于Consul的服务发现装置的结构示意图;
图5为本发明又一个实施例提供的基于Consul的服务发现装置的结构示意图;
图6为本发明又一个实施例提供的基于Consul的服务发现装置的结构示意图;
图7为本发明又一个实施例提供的基于Consul的服务发现装置的结构示意图;
图8为本发明又一个实施例提供的基于Consul的服务发现装置的结构示意图;
图9为本发明又一个实施例提供的基于Consul的服务发现装置的结构示意图;
图10为本发明又一个实施例提供的基于Consul的服务发现装置的结构示意图;
图11为本发明一个实施例提供的电子设备的结构示意图;
图12为本发明另一个实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明一个实施例提供的基于Consul的服务发现方法的流程示意图,包括:
步骤101,向Consul服务端发送服务发现请求。
上游服务器向Consul服务端发送服务发现请求,以获取包含当前可用下游服务器相关属性信息的服务列表。
步骤102,接收Consul服务端返回的服务列表,服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。
向Consul服务端发送服务发现请求后,在设定时长内,当Consul服务端生成的服务列表有更新时,上游服务器便可以接收到Consul服务端发送的更新后的服务列表,然后再次发送服务发现请求,依次类推进行循环;若在上述设定时长内,Consul服务端生成的服务列表没有更新,上游服务器则可以接收到当前时刻最新的服务列表,并再次发送服务发现请求,依次类推进行循环。
在本发明实施例提供的图1所示的基于Consul的服务发现方法中,首先,向Consul服务端发送服务发现请求;然后接收Consul服务端返回的服务列表;服务列表中包括当前可用的各下游可用服务器的网络地址信息和性能权重信息,性能权重信息表征下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
图2为本发明又一个实施例提供的基于Consul的服务发现方法的流程示意图,包括:
步骤201,接收下游服务器发送的服务注册请求,服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。
各下游服务器可以在启动时,便向Consul服务端发送各自的服务注册请求,服务注册请求中携带的下游服务器的网络地址信息可以包括下游服务器的IP地址,也可以包括下游服务器的端口,还可以包括一些配置信息等,对此,不作限制。
在接收到的服务注册请求中,增加了各下游服务器的性能权重,可以通过上述请求信息体现出各下游服务器的业务处理能力。其中,性能权重信息可以是表征下游服务器的业务处理能力的数值,数值越大表示对应下游服务器的业务处理能力越强。
步骤202,生成服务列表,服务列表中包括下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重。
步骤203,在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。
本步骤中,在接收到上游服务器发送的服务发现请求后,当服务列表有更新时,Consul服务端可以立即将更新后的服务列表返回给上游服务器;当在设定时长内,服务列表没有更新时,Consul服务端可以将当前时刻最新的服务列表返回给上游服务器。
在本发明实施例提供的图2所示的基于Consul的服务发现方法中,首先,接收下游服务器发送的服务注册请求;服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力;然后,生成服务列表;最后,在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
下面结合附图,对本发明实施例提供的基于Consul的服务发现方法、装置及电子设备进行详细描述。
如附图3所示,本发明又一个实施例提供的基于Consul的服务发现方法,具体包括如下步骤:
步骤301,下游服务器向Consul服务端发送服务注册请求,服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。
本步骤中,服务注册请求中携带的下游服务器的网络地址信息可以包括下游服务器的IP地址,也可以包括下游服务器的端口,还可以包括一些配置信息,对此,不作限制。
各下游服务器可以在启动时,便向Consul服务端发送各自的服务注册请求。在Consul服务端接收到的服务注册请求中,增加了各下游服务器的性能权重,可以通过上述请求信息体现出各下游服务器的业务处理能力。其中,性能权重信息可以是表征下游服务器的业务处理能力的数值,数值越大表示对应下游服务器的业务处理能力越强。
步骤302,Consul服务端生成服务列表,服务列表中包括下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重。
在Consul服务端接收到各下游服务器的注册请求后,生成包括各下游服务器的网络地址信息和性能权重的服务列表。
进一步的,在成服务列表之后,Consul服务端还可以在当确定出最新生成的服务列表中有下游服务器发生异常时,从服务列表中删除发生异常的该下游服务器的网络地址信息和性能权重,得到新的服务列表。
进一步的,可以采用如下步骤确定最新生成的服务列表中的下游服务器是否发生异常:
基于心跳检测确定最新生成的服务列表中的下游服务器是否发生异常;
或者,
在接收到下游服务器发送的表示该下游服务器发生异常的异常消息后,确定该下游服务器发生异常。
步骤303,上游服务器向Consul服务端发送服务发现请求。
步骤304,Consul服务端在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。
步骤303和步骤304中,本步骤中,首先上游服务器向Consul服务端发送服务发现请求后,在设定时长内,当Consul服务端生成的服务列表有更新时,Consul服务端可以立即将更新后的服务列表返回给上游服务器,上游服务器在收到上述更新后的服务列表后,会再次发送服务发现请求,依次类推进行循环;当在上述设定时长内,Consul服务端生成的服务列表没有更新时,Consul服务端则会将当前时刻最新的服务列表返回给上游服务器,上游服务器在收到上述更新后的服务列表后,会再次发送服务发现请求,依次类推进行循环。
上游服务器接收Consul服务端返回的服务列表,服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。
进一步的,在上游服务器接收到Consul服务端返回的服务列表之后,还可以:
对服务列表进行本地存储;
当出现无法从Consul服务端获取新的服务列表的情况时,获取本地存储的最新的服务列表,用于向下游服务器分配业务处理请求。
进一步的,在上游服务器接收到Consul服务端返回的服务列表之后,还可以:
上游服务器基于服务列表中包括的下游服务器的性能权重,确定负载均衡策略,负载均衡策略用于向服务列表中包括的各下游服务器分配业务处理请求。
本步骤中,可以采用加权轮询算法来确定。
确定负载均衡策略,便于上游服务器明确各下游服务器的业务处理能力,以便在接到业务处理请求时,按照上述负载均衡策略对上述业务处理请求进行分配。
进一步的,还可以包括:
在接收到业务处理请求后,根据负载均衡策略,从服务列表中确定用于处理业务处理请求的下游服务器;
基于确定出的该下游服务器的网络地址信息,将业务处理请求分配给确定出的下游服务器。
根据确定出的负载均衡策略,上游服务器在进行业务请求分配时,会更加合理,例如,对于业务处理能力强的下游服务器,可以适当多分配一些业务处理请求,这样,有助于提高业务处理的整体效率。
在本发明实施例提供的图3所示的基于Consul的服务发现方法中,首先,Consul服务端接收下游服务器发送的服务注册请求,服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力;然后,Consul服务端生成服务列表;上游服务器向Consul服务端发送服务发现请求;Consul服务端在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器;最后,上游服务器接收Consul服务端返回的服务列表,服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
基于同一发明构思,根据本发明上述实施例提供的应用于上游服务器的,基于Consul的服务发现方法,相应地,本发明一个实施例还提供了一种位于上游服务器的,基于Consul的服务发现装置,其结构示意图如图4所示,包括:
请求发送模块401,用于向Consul服务端发送服务发现请求;
服务列表接收模块402,用于接收Consul服务端返回的服务列表,服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。
进一步的,如图5所示,装置还包括:
服务列表存储模块403,用于对服务列表进行本地存储;
服务列表获取模块404,用于当出现无法从Consul服务端获取新的服务列表的情况时,获取本地存储的最新的服务列表,用于向下游服务器分配业务处理请求。
进一步的,如图6所示,装置还包括:
策略确定模块405,用于基于服务列表中包括的下游服务器的性能权重,确定负载均衡策略,负载均衡策略用于向服务列表中包括的各下游服务器分配业务处理请求。
进一步的,如图7所示,装置还包括:
下游服务器确定模块406,用于在接收到业务处理请求后,根据负载均衡策略,从服务列表中确定用于处理业务处理请求的下游服务器;
处理请求分配模块407,用于基于确定出的该下游服务器的网络地址信息,将业务处理请求分配给确定出的下游服务器。
在本发明实施例中,首先通过请求发送模块401向Consul服务端发送服务发现请求,然后再通过服务列表接收模块402接收Consul服务端返回的服务列表,服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
基于同一发明构思,根据本发明上述实施例提供的应用于Consul服务端的,基于Consul的服务发现方法,相应地,本发明一个实施例还提供了一种位于Consul服务端的,基于Consul的服务发现装置,其结构示意图如图8所示,包括:
注册请求接收模块801,用于接收下游服务器发送的服务注册请求,服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力;
服务列表生成模块802,用于生成服务列表,服务列表中包括下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重;
服务列表发送模块803,用于在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。
进一步的,如图9所示,装置还包括:
服务列表更新模块804,用于当确定出最新生成的服务列表中下游服务器发生异常时,从服务列表中删除发生异常的该下游服务器的网络地址信息和性能权重,得到新的服务列表。
进一步的,如图10所述,装置还包括:
异常确定模块805,用于基于心跳检测确定最新生成的服务列表中的下游服务器是否发生异常;或者,在接收到下游服务器发送的表示该下游服务器发生异常的异常消息后,确定该下游服务器发生异常。
在本发明实施例中,首先通过注册请求接收模块801接收下游服务器发送的服务注册请求,服务注册请求中携带下游服务器的网络地址信息和性能权重;然后通过服务列表生成模块802生成服务列表,服务列表中包括下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重;最后再通过服务列表发送模块803在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
基于同一发明构思,根据本发明上述实施例提供的应用于上游服务器的,基于Consul的服务发现方法,相应地,本发明实施例还提供了一种电子设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
存储器1103,用于存放计算机程序;
处理器1101,用于执行存储器1103上所存放的程序时,实现本发明实施例提供的上述应用于上游服务器的,基于Consul的服务发现方法。
例如,可以包括如下步骤:
向Consul服务端发送服务发现请求;
接收Consul服务端返回的服务列表,服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力。
进一步的,还可以包括本发明实施例提供的上述应用于上游服务器的,基于Consul的服务发现方法中的其他处理流程,在此不再进行详细描述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的应用于上游服务器的,基于Consul的服务发现电子设备中,其采用的方法为:首先,向Consul服务端发送服务发现请求;然后接收Consul服务端返回的服务列表;服务列表中包括当前可用的各下游可用服务器的网络地址信息和性能权重信息,性能权重信息表征下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
基于同一发明构思,根据本发明上述实施例提供的应用于Consul服务端的,基于Consul的服务发现方法,相应地,本发明实施例还提供了一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现本发明实施例提供的上述应用于上游服务器的,基于Consul的服务发现方法。
例如,可以包括如下步骤:
接收下游服务器发送的服务注册请求,服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力;
生成服务列表,服务列表中包括下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重;
在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。
进一步的,还可以包括本发明实施例提供的上述应用于Consul服务端的,基于Consul的服务发现方法中的其他处理流程,在此不再进行详细描述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的应用于Consul服务端的,基于Consul的服务发现电子设备中,其采用的方法为:接收下游服务器发送的服务注册请求;服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力;然后,生成服务列表;最后,在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一上述的应用于上游服务器的,基于Consul的服务发现方法。
本发明实施例提供的计算机可读存储介质中,其采用的方法为:首先,向Consul服务端发送服务发现请求;然后接收Consul服务端返回的服务列表;服务列表中包括当前可用的各下游可用服务器的网络地址信息和性能权重信息,性能权重信息表征下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一上述的应用于Consul服务端的,基于Consul的服务发现方法。
本发明实施例提供的计算机可读存储介质中,其采用的方法为:接收下游服务器发送的服务注册请求;服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力;然后,生成服务列表;最后,在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一上述的应用于上游服务器的,基于Consul的服务发现方法。
本发明实施例提供的包含指令的计算机程序产品中,其采用的方法为:首先,向Consul服务端发送服务发现请求;然后接收Consul服务端返回的服务列表;服务列表中包括当前可用的各下游可用服务器的网络地址信息和性能权重信息,性能权重信息表征下游服务器的业务处理能力。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一上述的应用于Consul服务端的,基于Consul的服务发现方法。
本发明实施例提供的包含指令的计算机程序产品中,其采用的方法为:接收下游服务器发送的服务注册请求;服务注册请求中携带下游服务器的网络地址信息和性能权重,性能权重表征下游服务器的业务处理能力;然后,生成服务列表;最后,在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至上游服务器。通过本发明实施例的方案,可以使上游服务器获知的可用下游服务器的属性信息更加丰富。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本发明实施例上述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种基于Consul的服务发现方法,应用于上游服务器,其特征在于,包括:
向Consul服务端发送服务发现请求;
接收所述Consul服务端返回的服务列表,所述服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力。
2.根据权利要求1所述的方法,其特征在于,在所述接收所述Consul服务端返回的服务列表信息之后,所述方法还包括:
对所述服务列表进行本地存储;
当出现无法从所述Consul服务端获取新的服务列表的情况时,获取本地存储的最新的服务列表,用于向下游服务器分配业务处理请求。
3.根据权利要求1所述的方法,其特征在于,在所述接收所述Consul服务端返回的服务列表之后,所述方法还包括:
基于所述服务列表中包括的下游服务器的所述性能权重,确定负载均衡策略,所述负载均衡策略用于向所述服务列表中包括的各下游服务器分配业务处理请求。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在接收到业务处理请求后,根据所述负载均衡策略,从所述服务列表中确定用于处理所述业务处理请求的下游服务器;
基于确定出的该下游服务器的网络地址信息,将所述业务处理请求分配给确定出的下游服务器。
5.一种基于Consul的服务发现方法,应用于Consul服务端,其特征在于,包括:
接收下游服务器发送的服务注册请求,所述服务注册请求中携带所述下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力;
生成服务列表,所述服务列表中包括所述下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重;
在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至所述上游服务器。
6.根据权利要求5所述的方法,其特征在于,在所述生成服务列表之后,所述方法还包括:
当确定出最新生成的服务列表中下游服务器发生异常时,从服务列表中删除发生异常的该下游服务器的网络地址信息和性能权重,得到新的服务列表。
7.根据权利要求5所述的方法,其特征在于,采用如下步骤确定最新生成的服务列表中的下游服务器是否发生异常:
基于心跳检测确定最新生成的服务列表中的下游服务器是否发生异常;
或者,
在接收到下游服务器发送的表示该下游服务器发生异常的异常消息后,确定该下游服务器发生异常。
8.一种基于Consul的服务发现装置,位于上游服务器,其特征在于,包括:
请求发送模块,用于向Consul服务端发送服务发现请求;
服务列表接收模块,用于接收所述Consul服务端返回的服务列表,所述服务列表中包括当前可用的各下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
服务列表存储模块,用于对所述服务列表进行本地存储;
服务列表获取模块,用于当出现无法从所述Consul服务端获取新的服务列表的情况时,获取本地存储的最新的服务列表,用于向下游服务器分配业务处理请求。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
策略确定模块,用于基于所述服务列表中包括的下游服务器的所述性能权重,确定负载均衡策略,所述负载均衡策略用于向所述服务列表中包括的各下游服务器分配业务处理请求。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
下游服务器确定模块,用于在接收到业务处理请求后,根据所述负载均衡策略,从所述服务列表中确定用于处理所述业务处理请求的下游服务器;
处理请求分配模块,用于基于确定出的该下游服务器的网络地址信息,将所述业务处理请求分配给确定出的下游服务器。
12.一种基于Consul的服务发现装置,位于Consul服务端,其特征在于,包括:
注册请求接收模块,用于接收下游服务器发送的服务注册请求,所述服务注册请求中携带所述下游服务器的网络地址信息和性能权重,所述性能权重表征所述下游服务器的业务处理能力;
服务列表生成模块,用于生成服务列表,所述服务列表中包括所述下游服务器及其他当前可用的下游服务器的网络地址信息和性能权重;
服务列表发送模块,用于在接收到上游服务器发送的服务发现请求后,将当前最新生成的服务列表返回至所述上游服务器。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
服务列表更新模块,用于当确定出最新生成的服务列表中下游服务器发生异常时,从服务列表中删除发生异常的该下游服务器的网络地址信息和性能权重,得到新的服务列表。
14.根据权利要求12所述的装置,其特征在于,还包括:
异常确定模块,用于基于心跳检测确定最新生成的服务列表中的下游服务器是否发生异常;或者,在接收到下游服务器发送的表示该下游服务器发生异常的异常消息后,确定该下游服务器发生异常。
15.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
16.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求5-7任一所述的方法步骤。
CN201810076946.4A 2018-01-26 2018-01-26 一种基于Consul的服务发现方法、装置及电子设备 Pending CN108366102A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810076946.4A CN108366102A (zh) 2018-01-26 2018-01-26 一种基于Consul的服务发现方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810076946.4A CN108366102A (zh) 2018-01-26 2018-01-26 一种基于Consul的服务发现方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN108366102A true CN108366102A (zh) 2018-08-03

Family

ID=63007219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810076946.4A Pending CN108366102A (zh) 2018-01-26 2018-01-26 一种基于Consul的服务发现方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108366102A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111245901A (zh) * 2019-12-31 2020-06-05 的卢技术有限公司 一种支持服务参数下发的分布式服务注册发现方法及系统
CN111555931A (zh) * 2020-04-23 2020-08-18 北京奇艺世纪科技有限公司 上游服务器监控处理方法、监控器及电子设备
CN111984289A (zh) * 2020-07-31 2020-11-24 广州市百果园信息技术有限公司 一种服务更新方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158899A (zh) * 2014-08-25 2014-11-19 深圳市中兴移动通信有限公司 基于面向服务架构的移动终端信息推送方法、装置及系统
CN105607951A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 处理数据请求及获取服务器信息的方法及装置
CN106331065A (zh) * 2016-08-15 2017-01-11 众安在线财产保险股份有限公司 一种用于具有服务容器的主机系统的代理应用以及系统
CN106953758A (zh) * 2017-03-20 2017-07-14 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的动态配置管理方法及系统
CN107229520A (zh) * 2017-04-27 2017-10-03 北京数人科技有限公司 一种数据中心操作系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158899A (zh) * 2014-08-25 2014-11-19 深圳市中兴移动通信有限公司 基于面向服务架构的移动终端信息推送方法、装置及系统
CN105607951A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 处理数据请求及获取服务器信息的方法及装置
CN106331065A (zh) * 2016-08-15 2017-01-11 众安在线财产保险股份有限公司 一种用于具有服务容器的主机系统的代理应用以及系统
CN106953758A (zh) * 2017-03-20 2017-07-14 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的动态配置管理方法及系统
CN107229520A (zh) * 2017-04-27 2017-10-03 北京数人科技有限公司 一种数据中心操作系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111245901A (zh) * 2019-12-31 2020-06-05 的卢技术有限公司 一种支持服务参数下发的分布式服务注册发现方法及系统
CN111245901B (zh) * 2019-12-31 2023-04-07 西藏宁算科技集团有限公司 一种支持服务参数下发的分布式服务注册发现方法及系统
CN111555931A (zh) * 2020-04-23 2020-08-18 北京奇艺世纪科技有限公司 上游服务器监控处理方法、监控器及电子设备
CN111984289A (zh) * 2020-07-31 2020-11-24 广州市百果园信息技术有限公司 一种服务更新方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN104243337B (zh) 一种跨集群负载均衡的方法及装置
CN107078969B (zh) 实现负载均衡的计算机设备、系统和方法
CN106899680B (zh) 多区块链的分片处理方法和装置
CN109660607A (zh) 一种业务请求分发方法、接收方法、装置及服务器集群
CN110365752A (zh) 业务数据的处理方法、装置、电子设备和存储介质
CN109347947A (zh) 一种负载均衡的方法、域名服务器及集群nas服务器
CN110049130A (zh) 一种基于边缘计算的服务部署和任务调度方法及装置
CN113037869B (zh) 用于内容分发网络系统的回源的方法和装置
CN105337786B (zh) 一种服务器性能检测方法、装置及设备
CN104885407A (zh) 一种网络功能虚拟化nfv故障管理装置、设备及方法
CN103369601A (zh) 为手机客户端提供大并发处理及流量控制的方法
CN110365748A (zh) 业务数据的处理方法和装置、存储介质及电子装置
CN108134830A (zh) 基于消息队列的负载均衡方法、系统、装置及存储介质
CN106209402A (zh) 一种虚拟网络功能的伸缩方法和设备
CN108366102A (zh) 一种基于Consul的服务发现方法、装置及电子设备
CN106878193A (zh) 一种负载分担方法及装置
Huang et al. Converged network-cloud service composition with end-to-end performance guarantee
CN106302230B (zh) 一种数据传输方法及装置
CN110022375A (zh) 代理节点的分配方法及装置
CN109936613A (zh) 应用于服务器的容灾方法和装置
CN107800814B (zh) 虚拟机部署方法及装置
CN109150745A (zh) 一种报文处理方法及装置
CN105515884B (zh) 一种统计流量的方法和装置
CN109982034A (zh) 视频监控系统中的访问请求处理方法及装置
CN108111567A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180803