CN108055157A - 一种服务节点的获取方法及装置 - Google Patents

一种服务节点的获取方法及装置 Download PDF

Info

Publication number
CN108055157A
CN108055157A CN201711373526.4A CN201711373526A CN108055157A CN 108055157 A CN108055157 A CN 108055157A CN 201711373526 A CN201711373526 A CN 201711373526A CN 108055157 A CN108055157 A CN 108055157A
Authority
CN
China
Prior art keywords
server
service node
information
request
management server
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
CN201711373526.4A
Other languages
English (en)
Other versions
CN108055157B (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 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 CN201711373526.4A priority Critical patent/CN108055157B/zh
Publication of CN108055157A publication Critical patent/CN108055157A/zh
Application granted granted Critical
Publication of CN108055157B publication Critical patent/CN108055157B/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/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • 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
    • 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
    • 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/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种服务节点的获取方法及装置,本发明中管理服务器接收到代理服务器发送的服务节点获取请求后,会根据实时更新的服务器注册列表,获取与所述服务节点获取请求对应的服务节点信息,进而将服务节点信息发送到代理服务器。管理服务器内的服务器注册列表随时更新,这样当出现服务节点扩容或者出现宕机等故障时,管理服务器中会有最新的服务器注册列表,服务节点信息是基于更新后的服务器注册列表生成,进而代理服务器每次都能得到最新的服务节点信息,不需要人工手动更新,减少了人工工作量,并且降低了人工更新错误的风险。

Description

一种服务节点的获取方法及装置
技术领域
本发明涉及通信领域,更具体的说,涉及一种服务节点的获取方法及装置。
背景技术
目前互联网应用往往采用分布式架构来实现服务高并发、高可用的目的,在构建和部署分布式架构的过程中,处理用户请求的Nginx服务器中内置有配置文件,配置文件中有为Nginx服务器提供服务的服务节点。
当为Nginx服务器提供服务的服务节点扩容或者出现宕机等故障时,Nginx服务器中的配置文件就需要更新,现有技术中更新配置文件采用人工手动更新的方式。
但是人工手动更新配置文件,会增加人工的工作量,并且存在人工更新错误的风险。
发明内容
有鉴于此,本发明提供一种服务节点的获取方法及装置,以解决人工手动更新配置文件,会增加人工的工作量,并且存在人工更新错误的风险的问题。
为解决上述技术问题,本发明采用了如下技术方案:
一种服务节点的获取方法,应用于管理服务器,包括:
根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表;其中,所述服务器注册列表中包括连接到所述管理服务器的至少一个服务器的服务器信息;
每隔指定时间,接收代理服务器发送的服务节点获取请求;
根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息;
将与所述代理服务器发送的服务节点获取请求对应的服务节点信息发送到所述代理服务器。
优选地,所述根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息,包括:
从所述实时更新的服务器注册列表中查找与所述代理服务器发送的所述服务节点获取请求对应的服务节点信息。
优选地,根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表之前,还包括:
接收至少一个待连接到所述管理服务器的服务器发送的注册请求;其中,所述注册请求中包括服务器的属性信息;
确定出至少一个服务器;其中,确定出的服务器的属性信息与所述管理服务器中存储的所述服务器的属性信息相同;
将确定出的服务器连接到所述管理服务器;
根据连接到所述管理服务器的每个服务器的服务器信息,生成服务器注册列表。
优选地,根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表,包括:
根据新连接到所述管理服务器的至少一个服务器的连接状态,以及连接到所述管理服务器的每个服务器发送的心跳信息,实时更新服务器注册列表。
一种服务节点的获取方法,应用于代理服务器,包括:
每隔第一预设时间,发送服务节点获取请求到管理服务器;
判断第二预设时间内是否接收到所述管理服务器发送的与所述服务节点获取请求对应的服务节点信息;
当所述第二预设时间内接收到来自所述管理服务器的服务节点信息,将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息。
优选地,将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息后,还包括:
当所述可识别的服务节点信息与所述代理服务器的内存中存储的历史服务节点信息不一致时,将所述可识别的服务节点信息作为新的历史服务节点信息;
每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息。
优选地,每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息服务节点信息后,还包括:
接收客户端发送的用户请求;
根据所述标准信息,采用负载均衡算法,计算出与所述用户请求对应的服务节点;
从所述用户请求对应的服务节点中获取与所述用户请求对应的服务信息;
将所述服务信息发送到所述客户端。
一种服务节点的获取装置,应用于管理服务器,包括:
更新模块,用于根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表;其中,所述服务器注册列表中包括连接到所述管理服务器的至少一个服务器的服务器信息;
接收模块,用于每隔指定时间,接收代理服务器发送的服务节点获取请求;
信息获取模块,用于根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息;
发送模块,用于将与所述代理服务器发送的服务节点获取请求对应的服务节点信息发送到所述代理服务器。
优选地,所述信息获取模块包括:
获取子模块,用于从所述实时更新的服务器注册列表中查找与所述代理服务器发送的所述服务节点获取请求对应的服务节点信息。
优选地,还包括:
请求接收模块,用于更新模块根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表之前,接收至少一个待连接到所述管理服务器的服务器发送的注册请求;其中,所述注册请求中包括服务器的属性信息;
确定模块,用于确定出至少一个服务器;其中,确定出的服务器的属性信息与所述管理服务器中存储的所述服务器的属性信息相同;
连接模块,用于将确定出的服务器连接到所述管理服务器;
列表生成模块,用于根据连接到所述管理服务器的每个服务器的服务器信息,生成服务器注册列表。
优选地,所述更新模块包括:
更新子模块,用于根据新连接到所述管理服务器的至少一个服务器的连接状态,以及连接到所述管理服务器的每个服务器发送的心跳信息,实时更新服务器注册列表。
一种服务节点的获取装置,应用于代理服务器,包括:
请求发送单元,用于每隔第一预设时间,发送服务节点获取请求到管理服务器;
判断单元,用于判断第二预设时间内是否接收到所述管理服务器发送的与所述服务节点获取请求对应的服务节点信息;
格式转换单元,用于当所述判断单元判断出第二预设时间内接收到来自所述管理服务器的服务节点信息,将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息。
优选地,还包括:
列表更新单元,用于所述格式转换单元将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息列表后,当所述可识别的服务节点信息与所述代理服务器的内存中存储的历史服务节点信息不一致时,将所述可识别的服务节点信息作为新的历史服务节点信息;
替换单元,用于每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息。
优选地,还包括:
用户请求接收单元,用于所述替换单元每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息后,接收客户端发送的用户请求;
节点计算单元,用于根据所述标准信息,采用负载均衡算法,计算出与所述用户请求对应的服务节点;
信息获取单元,用于从所述用户请求对应的服务节点中获取与所述用户请求对应的服务信息;
信息发送单元,用于将所述服务信息发送到所述客户端。
相较于现有技术,本发明具有以下有益效果:
本发明提供一种服务节点的获取方法及装置,本发明中管理服务器接收到代理服务器发送的服务节点获取请求后,会根据实时更新的服务器注册列表,获取与所述服务节点获取请求对应的服务节点信息,进而将服务节点信息发送到代理服务器。管理服务器内的服务器注册列表随时更新,这样当出现服务节点扩容或者出现宕机等故障时,管理服务器中会有最新的服务器注册列表,服务节点信息是基于更新后的服务器注册列表生成,进而代理服务器每次都能得到最新的服务节点信息,不需要人工手动更新,减少了人工工作量,并且降低了人工更新错误的风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种应用于管理服务器的服务节点的获取方法的方法流程图;
图2为本发明提供的另一种应用于管理服务器的服务节点的获取方法的方法流程图;
图3为本发明提供的一种应用于Nginx服务器的服务节点的获取方法的方法流程图;
图4为本发明提供的一种应用于管理服务器的服务节点的获取装置的结构示意图;
图5为本发明提供的一种应用于Nginx服务器的服务节点的获取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种服务节点的获取方法,应用于管理服务器,其中,管理服务器可以是注册中心服务器,主要起管理服务节点的作用。选择了Zookeeper来做注册中心的底层技术,Zookeeper的优点是允许集群中出现少数的不可用节点,避免单点的出现。通过对Zookeeper的二次封装,实现超文本传输协议http接口和计算机编程语言java接口两种方式的服务注册和服务发现方式。该Zookeeper组件实现的主要功能是:服务注册、服务列表返回。
其中,通过java接口的方式实现服务注册具体采用java代码注册方式实现,该方法适用于java服务器的注册,所涉及到的进行java服务器注册的代码为:
另外,通过http接口的方式实现服务注册适用于Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器Nginx服务器的注册,所涉及到的进行Nginx服务器注册的代码为:
参照图1,应用于管理服务器的服务节点的获取方法包括:
S11、根据连接到管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表;
其中,所述服务器注册列表中包括连接到所述管理服务器的至少一个服务器的服务器信息。
服务器信息包括服务器的网络之间互连的协议IP地址、版本号、服务器状态和测试用例testcase等信息。服务器可以是Nginx服务器或者java服务器。其中,连接到管理服务器的服务器的状态可以是正常状态、扩容或者是宕机等状态。
可选的,在本实施例的基础上,步骤S11包括:
根据新连接到管理服务器的至少一个服务器的连接状态,以及连接到管理服务器的每个服务器发送的心跳信息,实时更新服务器注册列表。
具体的,连接到管理服务器的服务器的数量变化是指可能出现有新的服务器申请在管理服务器中注册的情况。此时需要管理服务器将新注册的服务器的服务节点信息更新到服务器注册列表。
此外,每隔固定时间,服务器会向管理服务器发送一次心跳信息,如每隔30s向管理服务器发送一次心跳信息,当管理服务器长时间没有收到服务器发送的心跳信息,说明服务器出现宕机等情况而不能正常与管理服务器进行通信,此时说明,该服务器已不可用,此时管理服务器需要将故障服务器进行摘除。
本步骤中,能够在宕机或扩容等情况下,均能够更新服务器注册列表。保证在宕机或扩容等情况下,均能够为代理服务器提供最新、最全的服务器注册列表。
S12、每隔指定时间,接收代理服务器发送的服务节点获取请求;
其中,代理服务器可以为Nginx服务器。
其中,指定时间是技术人员根据具体应用场景进行设定的,指定时间可以为半小时。服务节点获取请求是为了获取为Nginx服务器提供指定服务的服务节点。
S13、根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息;
可选的,在本实施例的基础上,步骤S13包括:
从所述实时更新的服务器注册列表中查找与所述代理服务器发送的所述服务节点获取请求对应的服务节点信息。
本步骤中,可以通过查表的方式来确定服务节点信息,方便快捷。
具体的,当代理服务器为Nginx服务器时,服务节点获取请求是为了获取为Nginx服务器提供指定服务的服务节点。指定服务可以是登录、注册等服务,知道Nginx服务器需要获取什么服务之后,只需要从所述实时更新的服务器注册列表中查找与所述Nginx服务器发送的所述服务节点获取请求对应的服务器节点信息即可,就能够得到服务节点获取请求对应的服务节点信息。
S14、将与所述代理服务器发送的服务节点获取请求对应的服务节点信息发送到所述代理服务器。
具体的,将服务节点信息发送到Nginx服务器后,Nginx服务器就能够知道哪个服务器为Nginx服务器提供服务。
本实施例中,管理服务器接收到代理服务器发送的服务节点获取请求后,会根据实时更新的服务器注册列表,获取与所述服务节点获取请求对应的服务节点信息,进而将服务节点信息发送到代理服务器。管理服务器内的服务器注册列表随时更新,这样当出现服务节点扩容或者出现宕机等故障时,管理服务器中会有最新的服务器注册列表,服务节点信息是基于更新后的服务器注册列表生成,进而代理服务器每次都能得到最新的服务节点信息,不需要人工手动更新,减少了人工工作量,并且降低了人工更新错误的风险。
可选的,在上述任一实施例的基础上,参照图2,步骤S11之前还包括:
S21、接收至少一个待连接到所述管理服务器的服务器发送的注册请求;
其中,所述注册请求中包括服务器的属性信息。
其中,服务器发送注册请求的目的是为了连接到管理服务器。属性信息包括服务器的版本号和testcase信息。
S22、确定出至少一个服务器;
其中,确定出的服务器的属性信息与所述管理服务器中存储的所述服务器的属性信息相同。
具体的,管理服务器中的数据库中保存有大量的服务器的属性信息,将待连接到管理服务器的服务器的属性信息与数据库中相同的服务器的属性信息进行比较,若相同,则说明待连接的服务器为合法的服务器,若不同,则说明待连接的服务器为不合法的服务器。
需要说明的是,将属性信息进行比对,是为了防止恶意的服务器连接到管理服务器,避免管理服务器中的信息被窃取。
S23、将确定出的服务器连接到所述管理服务器;
S24、根据连接到所述管理服务器的每个服务器的服务器信息,生成服务器注册列表。
具体的,服务器信息包括服务器的IP地址、版本号和testcase等信息。
将连接到管理服务器的每个服务器的服务器信息进行汇总,得到服务器注册列表。其中,服务器注册列表可以以表格的形式进行展示。
本实施例中,能够生成服务器注册列表,进而能够了解有多少台服务器连接到管理服务器。
需要说明的是,本实施例中的步骤S25至步骤S28,请参照上述实施例中的相应说明,在此不再赘述。
可选的,本发明的另一实施例中提供了一种服务节点的获取方法,应用于代理服务器,其中,代理服务器可以为Nginx服务器。
需要说明的是,本实施例中的Nginx服务器并没有连接到管理服务器,只是能够与管理服务器进行通信。Nginx服务器和连接到管理服务器的服务器是M:N的关系,即一台Nginx服务器的服务节点信息中会有多个连接到管理服务器的服务器,一台连接到管理服务器的服务器存在于多个Nginx服务器的服务节点信息中。
此外,Nginx服务器中,安装有一个自主研发的、与管理服务器通信的组件SmartNginx Client,为用于从管理服务器获取服务节点信息的组件。组件实现了三个主要功能:获取服务节点信息、服务节点信息定期备份和采用负载均衡算法选择服务节点。
参照图3,服务节点的获取方法包括:
S31、每隔第一预设时间,发送服务节点获取请求到管理服务器;
其中,服务节点获取请求是为了获取服务节点信息。发送的服务节点获取请求为http请求。
需要说明的是,代理服务器启动后,就执行步骤S31。
在具体实现中,优选的,启动定时器,以保证定时发送服务节点获取请求,并获取服务节点获取请求对应的服务节点信息时所执行的代码为:
local check
check=function(premature,ctx)
if premature then
return
end
pcall(process_multi,ctx)
local ok,err=new_timer(ctx.delay,check,ctx)
if not ok then
if err~="process exiting"then
errlog("failed to create timer:",err)
end
return
end
end
S32、判断第二预设时间内是否接收到管理服务器发送的与服务节点获取请求对应的服务节点信息;当第二预设时间内接收到来自管理服务器的服务节点信息,执行步骤S33,当第二预设时间内未接收到来自管理服务器的服务节点信息,执行步骤S34。
S33、将服务节点信息进行格式转换,得到代理服务器可识别的服务节点信息。
具体的,当代理服务器为Nginx服务器时,接收到的服务节点信息,Nginx服务器不能识别,此时需要将服务节点信息进行格式转换,转换成服务节点信息可以识别的服务节点信息。其中,服务节点信息为Upstream列表。Upstream为Nginx服务器的内存中的一个数据结构。除了可以转换成Upstream列表,还可以转换成Nginx服务器可识别的其他格式。
当转换成Upstream列表后,就可以启动Worker,进而就可以接收用户请求。当Worker成功启动时,说明启动成功,可以正常处理用户请求,当Worker未成功启动时,说明未启动成功,不能正常处理用户请求。
S34、读取预设位置中的历史服务节点信息。
具体的,当判断出第二预设时间内未接收到管理服务器发送的与服务节点获取请求对应的服务节点信息,可能说明Nginx服务器与管理服务器之间的通信存在问题、请求超时或者请求的数据不存在等问题,此时可以从预设位置中获取得到历史服务节点信息,以防止Nginx服务器由于网络等因素导致Nginx服务器启动失败。其中,预设位置可以是本地磁盘。
在具体实现中,优选的,读取预设位置中的历史服务节点信息时所执行的代码为:
localstoreresult=mainctx.cache:get(ctx.service)
errlog("read fromcache:",storeresult)
if not storeresult then
localbgresult=readFromFile(ctx)
localsucc_cachebg,err_cachebg,forcible_cachebg=mainctx.cache:set(ctx.service,bgresult)
saveToTable(bgresult,ctx,'bgfile')
errlog("service:",ctx.service,",set bg cache:",bgresult)
end
可选的,在本实施例的基础上,步骤S33后,还包括:
1)当所述可识别的服务节点信息与所述代理服务器的内存中存储的历史服务节点信息不一致时,将所述可识别的服务节点信息作为新的历史服务节点信息;
具体的,当代理服务器为Nginx服务器时,Nginx服务器的内存中也存储有历史服务节点信息,当Nginx服务器接收到管理服务器发送的服务节点信息且转换为可识别的服务节点信息后,会将可识别的服务节点信息与历史服务节点信息进行比较,当不一致时,更新历史服务节点信息,以使述Nginx服务器的内存中存储的历史服务节点信息为最新的历史服务节点信息。需要说明的是,将历史服务节点信息存储在内存中属于临时存储。
2)每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息。
具体的,内存中存储的数据属于临时存储,不能永久性保存,当Nginx服务器重新启动时,内存中保存的数据会被删除,因此,需要将内存中存储的历史服务节点信息定期存储到预设位置,预设位置可以是本地磁盘。存储到预设位置中的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息,用来确定服务节点。
其中,第一预设时间、第二预设时间和第三预设时间是技术人员根据具体使用场景进行设定的。
本例子中,可以随时确定最新的的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息,进而保证为用户服务时,确定的服务节点都是可用的。
本实施例中,代理服务器的历史服务节点信息是定期进行更新的,以保证历史服务节点信息列表中的服务节点都是可用的。
可选的,在图3对应的实施例的基础上,,每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息服务节点信息之后,还包括:
1)接收客户端发送的用户请求;
其中,用户请求可以是请求服务端口的请求,如可以请求登录端口、注册端口等。客户端可以是用户使用的手机、平板、笔记本或电脑等移动终端。
此外,用户请求中包括用户信息,用户信息包括用户身份标识号id、用户网络之间互连的协议ip、用户使用的设备等信息,当Nginx服务器接收到用户请求后,会对用户信息进行数据校验,以避免伪造的设备发送用户请求。
2)根据所述标准信息,采用负载均衡算法,计算出与所述用户请求对应的服务节点;
其中,标准信息为存储在预设位置中的历史服务节点信息。
具体的,组件SmartNginx Client能够实现轮询、随机和网络之间互连的协议/统一资源定位符ip/url哈希算法。
现举例分别介绍轮询、随机和ip/url哈希算法。其中,轮询、随机和ip/url哈希算法均为负载均衡算法。
轮询:比如A、B、C三个节点,用户请求1、请求2、请求3到达时,会由A处理请求1,B处理请求2,C处理请求3,顺序进行。
随机:比如A、B、C三个节点,用户请求1、请求2、请求3到达时,A、B、C三个节点的处理三个请求时是随机的,不存在对应关系。
ip/url哈希算法:根据用户的ip地址,或者请求的url,根据哈希算法计算出对应的处理节点,比如A、B、C三个节点,请求1、请求2、请求3,若请求1经过计算,应该由B节点处理,则B节点处理请求。
需要说明的是,根据本方法中的负载均衡算法计算得到服务节点后,若发现计算得到的服务节点出现了异常情况(如宕机、网络故障等)时,会将该服务节点删除,再使用负载均衡算法中的随机算法计算得到服务节点。需要说明的是,本步骤使用随机算法是为了防止某一服务节点压力过大。
在具体实现中,优选的,当采用负载均衡算法计算得到服务节点后,若发现计算得到的服务节点出现了异常情况时,将该服务节点删除,再使用负载均衡算法中的随机算法计算得到服务节点时所执行的代码为:
3)从所述用户请求对应的服务节点中获取与所述用户请求对应的服务信息;
4)将服务信息发送到客户端。
从服务节点中获取与用户请求对应的服务信息,并将服务信息发送到客户端后,用户就能够得到想要的信息。
本步骤中,能够在接收到用户请求后,查找到与用户请求相对应的服务信息,进而能够保证用户正常的访问权限。另外,提供了采用负载均衡算法计算得到的服务节点出现了异常情况时的处理机制,能够提高访问成功率。
可选的,本发明的另一实施例中提供了一种服务节点的获取装置,参照图4,应用于管理服务器,包括:
更新模块101,用于根据连接到管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表;其中,所述服务器注册列表中包括连接到所述管理服务器的至少一个服务器的服务器信息;
接收模块102,用于每隔指定时间,接收代理服务器发送的服务节点获取请求;
信息获取模块103,用于根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息;
发送模块104,用于将与所述代理服务器发送的服务节点获取请求对应的服务节点信息发送到所述代理服务器。
可选的,在本实施例的基础上,信息获取模块103包括:
获取子模块,用于从所述实时更新的服务器注册列表中查找与所述代理服务器发送的所述服务节点获取请求对应的服务节点信息。
可选的,在本实施例的基础上,更新模块101包括:
更新子模块,用于根据新连接到管理服务器的至少一个服务器的连接状态,以及连接到管理服务器的每个服务器发送的心跳信息,实时更新服务器注册列表。
本实施例中,管理服务器接收到代理服务器发送的服务节点获取请求后,会根据实时更新的服务器注册列表,获取与所述服务节点获取请求对应的服务节点信息,进而将服务节点信息发送到代理服务器。管理服务器内的服务器注册列表随时更新,这样当出现服务节点扩容或者出现宕机等故障时,管理服务器中会有最新的服务器注册列表,服务节点信息是基于更新后的服务器注册列表生成,进而代理服务器每次都能得到最新的服务节点信息,不需要人工手动更新,减少了人工工作量,并且降低了人工更新错误的风险。
需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选的,在上述任一应用于管理服务器的获取装置的实施例的基础上,还包括:
请求接收模块,用于更新模块101根据连接到管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表之前,接收至少一个待连接到所述管理服务器的服务器发送的注册请求;其中,所述注册请求中包括服务器的属性信息;
确定模块,用于确定出至少一个服务器;其中,确定出的服务器的属性信息与所述管理服务器中存储的所述服务器的属性信息相同;
连接模块,用于将确定出的服务器连接到所述管理服务器;
列表生成模块,用于根据连接到所述管理服务器的每个服务器的服务器信息,生成服务器注册列表。
本实施例中,能够生成服务器注册列表,进而能够了解有多少台服务器连接到管理服务器。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选的,本发明的另一实施例中提供了一种服务节点的获取装置,参照图5,应用于代理服务器,包括:
请求发送单元201,用于每隔第一预设时间,发送服务节点获取请求到管理服务器;
判断单元202,用于判断第二预设时间内是否接收到管理服务器发送的与服务节点获取请求对应的服务节点信息;
格式转换单元203,用于当判断单元判断出第二预设时间内接收到来自管理服务器的服务节点信息,将服务节点信息进行格式转换,得到代理服务器可识别的服务节点信息。
可选的,在本实施例的基础上,还包括:
列表更新单元,用于格式转换单元将服务节点信息进行格式转换,得到代理服务器可识别的服务节点信息列表后,当所述可识别的服务节点信息与所述代理服务器的内存中存储的历史服务节点信息不一致时,将所述可识别的服务节点信息作为新的历史服务节点信息;
替换单元,用于每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息。
本实施例中,代理服务器的历史服务节点信息是定期进行更新的,以保证历史服务节点信息列表中的服务节点都是可用的。
需要说明的是,本实施例中的各个单元的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选的,在替换单元每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息的实施例的基础上,还包括:
用户请求接收单元,用于所述替换单元每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息后,接收客户端发送的用户请求;
节点计算单元,用于根据所述标准信息,采用负载均衡算法,计算出与所述用户请求对应的服务节点;
信息获取单元,用于从所述用户请求对应的服务节点中获取与所述用户请求对应的服务信息;
信息发送单元,用于将服务信息发送到客户端。
本步骤中,能够在接收到用户请求后,查找到与用户请求相对应的服务信息,进而能够保证用户正常的访问权限。另外,提供了当采用负载均衡算法计算得到的服务节点出现了异常情况时的处理机制,能够提高访问成功率。
需要说明的是,本实施例中的各个单元的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (14)

1.一种服务节点的获取方法,其特征在于,应用于管理服务器,包括:
根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表;其中,所述服务器注册列表中包括连接到所述管理服务器的至少一个服务器的服务器信息;
每隔指定时间,接收代理服务器发送的服务节点获取请求;
根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息;
将与所述代理服务器发送的服务节点获取请求对应的服务节点信息发送到所述代理服务器。
2.根据权利要求1所述的获取方法,其特征在于,所述根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息,包括:
从所述实时更新的服务器注册列表中查找与所述代理服务器发送的所述服务节点获取请求对应的服务节点信息。
3.根据权利要求1所述的获取方法,其特征在于,根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表之前,还包括:
接收至少一个待连接到所述管理服务器的服务器发送的注册请求;其中,所述注册请求中包括服务器的属性信息;
确定出至少一个服务器;其中,确定出的服务器的属性信息与所述管理服务器中存储的所述服务器的属性信息相同;
将确定出的服务器连接到所述管理服务器;
根据连接到所述管理服务器的每个服务器的服务器信息,生成服务器注册列表。
4.根据权利要求1所述的获取方法,其特征在于,根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表,包括:
根据新连接到所述管理服务器的至少一个服务器的连接状态,以及连接到所述管理服务器的每个服务器发送的心跳信息,实时更新服务器注册列表。
5.一种服务节点的获取方法,其特征在于,应用于代理服务器,包括:
每隔第一预设时间,发送服务节点获取请求到管理服务器;
判断第二预设时间内是否接收到所述管理服务器发送的与所述服务节点获取请求对应的服务节点信息;
当所述第二预设时间内接收到来自所述管理服务器的服务节点信息,将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息。
6.根据权利要求5所述的获取方法,其特征在于,将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息后,还包括:
当所述可识别的服务节点信息与所述代理服务器的内存中存储的历史服务节点信息不一致时,将所述可识别的服务节点信息作为新的历史服务节点信息;
每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息。
7.根据权利要求6所述的获取方法,其特征在于,每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息服务节点信息后,还包括:
接收客户端发送的用户请求;
根据所述标准信息,采用负载均衡算法,计算出与所述用户请求对应的服务节点;
从所述用户请求对应的服务节点中获取与所述用户请求对应的服务信息;
将所述服务信息发送到所述客户端。
8.一种服务节点的获取装置,其特征在于,应用于管理服务器,包括:
更新模块,用于根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表;其中,所述服务器注册列表中包括连接到所述管理服务器的至少一个服务器的服务器信息;
接收模块,用于每隔指定时间,接收代理服务器发送的服务节点获取请求;
信息获取模块,用于根据实时更新的服务器注册列表,获取与所述代理服务器发送的服务节点获取请求对应的服务节点信息;
发送模块,用于将与所述代理服务器发送的服务节点获取请求对应的服务节点信息发送到所述代理服务器。
9.根据权利要求8所述的获取装置,其特征在于,所述信息获取模块包括:
获取子模块,用于从所述实时更新的服务器注册列表中查找与所述代理服务器发送的所述服务节点获取请求对应的服务节点信息。
10.根据权利要求8所述的获取装置,其特征在于,还包括:
请求接收模块,用于更新模块根据连接到所述管理服务器的至少一个服务器的连接状态,实时更新服务器注册列表之前,接收至少一个待连接到所述管理服务器的服务器发送的注册请求;其中,所述注册请求中包括服务器的属性信息;
确定模块,用于确定出至少一个服务器;其中,确定出的服务器的属性信息与所述管理服务器中存储的所述服务器的属性信息相同;
连接模块,用于将确定出的服务器连接到所述管理服务器;
列表生成模块,用于根据连接到所述管理服务器的每个服务器的服务器信息,生成服务器注册列表。
11.根据权利要求8所述的获取装置,其特征在于,所述更新模块包括:
更新子模块,用于根据新连接到所述管理服务器的至少一个服务器的连接状态,以及连接到所述管理服务器的每个服务器发送的心跳信息,实时更新服务器注册列表。
12.一种服务节点的获取装置,其特征在于,应用于代理服务器,包括:
请求发送单元,用于每隔第一预设时间,发送服务节点获取请求到管理服务器;
判断单元,用于判断第二预设时间内是否接收到所述管理服务器发送的与所述服务节点获取请求对应的服务节点信息;
格式转换单元,用于当所述判断单元判断出第二预设时间内接收到来自所述管理服务器的服务节点信息,将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息。
13.根据权利要求12所述的获取装置,其特征在于,还包括:
列表更新单元,用于所述格式转换单元将所述服务节点信息进行格式转换,得到所述代理服务器可识别的服务节点信息列表后,当所述可识别的服务节点信息与所述代理服务器的内存中存储的历史服务节点信息不一致时,将所述可识别的服务节点信息作为新的历史服务节点信息;
替换单元,用于每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息。
14.根据权利要求13所述的获取装置,其特征在于,还包括:
用户请求接收单元,用于所述替换单元每隔第三预设时间,将所述代理服务器的内存中存储的历史服务节点信息作为确定接收的用户请求对应的服务节点的标准信息后,接收客户端发送的用户请求;
节点计算单元,用于根据所述标准信息,采用负载均衡算法,计算出与所述用户请求对应的服务节点;
信息获取单元,用于从所述用户请求对应的服务节点中获取与所述用户请求对应的服务信息;
信息发送单元,用于将所述服务信息发送到所述客户端。
CN201711373526.4A 2017-12-19 2017-12-19 一种服务节点的获取方法及装置 Active CN108055157B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711373526.4A CN108055157B (zh) 2017-12-19 2017-12-19 一种服务节点的获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711373526.4A CN108055157B (zh) 2017-12-19 2017-12-19 一种服务节点的获取方法及装置

Publications (2)

Publication Number Publication Date
CN108055157A true CN108055157A (zh) 2018-05-18
CN108055157B CN108055157B (zh) 2021-02-23

Family

ID=62133858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711373526.4A Active CN108055157B (zh) 2017-12-19 2017-12-19 一种服务节点的获取方法及装置

Country Status (1)

Country Link
CN (1) CN108055157B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120717A (zh) * 2018-09-26 2019-01-01 中国平安人寿保险股份有限公司 反向代理方法、装置及存储介质、分布式系统
CN109669846A (zh) * 2018-12-14 2019-04-23 北京金山云网络技术有限公司 管理信息查询方法、装置以及计算机可读介质
CN110347509A (zh) * 2019-07-08 2019-10-18 北京字节跳动网络技术有限公司 业务框架接入系统、服务请求处理方法、设备及介质
WO2019237583A1 (zh) * 2018-06-13 2019-12-19 平安科技(深圳)有限公司 Nginx软件的安装方法、装置、计算机设备及存储介质
CN111629013A (zh) * 2019-02-27 2020-09-04 北京奇虎科技有限公司 一种业务节点管理的方法、装置和节点网络
CN111984289A (zh) * 2020-07-31 2020-11-24 广州市百果园信息技术有限公司 一种服务更新方法、装置、设备及存储介质
CN113094074A (zh) * 2021-05-07 2021-07-09 聚好看科技股份有限公司 一种服务集群的更新方法及装置
CN114285745A (zh) * 2021-12-22 2022-04-05 上海摩联信息技术有限公司 一种节点更新方法和装置
CN114327817A (zh) * 2021-12-22 2022-04-12 马上消费金融股份有限公司 一种任务分片方法、装置和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195577A1 (en) * 2005-02-25 2006-08-31 Fujitsu Limited Distributed server's failure response program product, server load balancing device, and server load balancing method
CN102571959A (zh) * 2012-01-11 2012-07-11 北京奇虎科技有限公司 一种数据下载系统及方法
CN104702702A (zh) * 2012-01-11 2015-06-10 北京奇虎科技有限公司 一种数据下载系统及方法
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及系统
CN105607951A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 处理数据请求及获取服务器信息的方法及装置
CN105827687A (zh) * 2015-11-17 2016-08-03 广东亿迅科技有限公司 集群管理方法及其管理系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195577A1 (en) * 2005-02-25 2006-08-31 Fujitsu Limited Distributed server's failure response program product, server load balancing device, and server load balancing method
CN102571959A (zh) * 2012-01-11 2012-07-11 北京奇虎科技有限公司 一种数据下载系统及方法
CN104702702A (zh) * 2012-01-11 2015-06-10 北京奇虎科技有限公司 一种数据下载系统及方法
CN105827687A (zh) * 2015-11-17 2016-08-03 广东亿迅科技有限公司 集群管理方法及其管理系统
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及系统
CN105607951A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 处理数据请求及获取服务器信息的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019237583A1 (zh) * 2018-06-13 2019-12-19 平安科技(深圳)有限公司 Nginx软件的安装方法、装置、计算机设备及存储介质
CN109120717A (zh) * 2018-09-26 2019-01-01 中国平安人寿保险股份有限公司 反向代理方法、装置及存储介质、分布式系统
CN109669846A (zh) * 2018-12-14 2019-04-23 北京金山云网络技术有限公司 管理信息查询方法、装置以及计算机可读介质
CN109669846B (zh) * 2018-12-14 2022-04-01 北京金山云网络技术有限公司 管理信息查询方法、装置以及计算机可读介质
CN111629013A (zh) * 2019-02-27 2020-09-04 北京奇虎科技有限公司 一种业务节点管理的方法、装置和节点网络
CN110347509A (zh) * 2019-07-08 2019-10-18 北京字节跳动网络技术有限公司 业务框架接入系统、服务请求处理方法、设备及介质
CN110347509B (zh) * 2019-07-08 2021-12-10 北京字节跳动网络技术有限公司 业务框架接入系统、服务请求处理方法、设备及介质
CN111984289A (zh) * 2020-07-31 2020-11-24 广州市百果园信息技术有限公司 一种服务更新方法、装置、设备及存储介质
CN113094074A (zh) * 2021-05-07 2021-07-09 聚好看科技股份有限公司 一种服务集群的更新方法及装置
CN113094074B (zh) * 2021-05-07 2024-03-19 聚好看科技股份有限公司 一种服务集群的更新方法及装置
CN114285745A (zh) * 2021-12-22 2022-04-05 上海摩联信息技术有限公司 一种节点更新方法和装置
CN114327817A (zh) * 2021-12-22 2022-04-12 马上消费金融股份有限公司 一种任务分片方法、装置和电子设备

Also Published As

Publication number Publication date
CN108055157B (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
CN108055157A (zh) 一种服务节点的获取方法及装置
CN105095022B (zh) 一种数据备份方法及装置
CN107483260B (zh) 故障处理方法及装置、电子设备
CN101478553B (zh) 动态域名管理系统和方法
CN102739775A (zh) 物联网数据采集服务器集群的监控和管理方法
CN103581276A (zh) 集群管理装置、系统、业务客户端及相应方法
US20040049546A1 (en) Mail processing system
CN101753597B (zh) 对等节点-客户端架构下对等节点与客户端间保活方法
CN102326366A (zh) 处理客户端与服务器之间经由通信网络的连接的方法和设备
JP2007156569A (ja) クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム
EP2939401B1 (en) Method for guaranteeing service continuity in a telecommunication network and system thereof
CN108712457A (zh) 基于Nginx反向代理的后端服务器动态负载调整方法及装置
CN107689878A (zh) 基于命名调度的tcp长连接负载均衡系统
CN107517227A (zh) 用于分布式一致性系统的会话实现方法以及装置
CN111343286A (zh) 一种网络接入系统及网络接入方法
EP1762069B1 (en) Method of selecting one server out of a server set
US10027577B2 (en) Methods, systems, and computer readable media for peer aware load distribution
CN111464612A (zh) 一种恶劣环境下提供稳定计算服务的方法
CN112671554A (zh) 一种节点故障处理方法及相关装置
US7519855B2 (en) Method and system for distributing data processing units in a communication network
CN106850747B (zh) 一种分布式实时转码系统的转码节点管理系统及方法
CN104348661A (zh) 网络失效数据上传、接收方法和设备及记录方法和系统
CN105553712A (zh) 一种实现双通道连接的服务器、终端、方法和系统
CN110099136A (zh) 网络访问方法、客户端、网络交互方法及调度、网络系统
CN108270876B (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