CN111274604A - 服务访问方法、装置、设备及计算机可读存储介质 - Google Patents
服务访问方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111274604A CN111274604A CN202010045595.8A CN202010045595A CN111274604A CN 111274604 A CN111274604 A CN 111274604A CN 202010045595 A CN202010045595 A CN 202010045595A CN 111274604 A CN111274604 A CN 111274604A
- Authority
- CN
- China
- Prior art keywords
- service
- node
- nodes
- service node
- request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种服务访问方法、装置、设备及计算机可读存储介质,涉及互联网技术领域,当接收到服务访问请求时,在请求地址对应的服务节点中确定目标服务节点,访问目标服务节点,为服务访问请求提供目标服务,使得可根据服务访问请求的请求地址和请求的目标服务,提供相应的访问节点,不会受到发送服务访问请求的场景限制,扩大了服务的适用范围,将服务的能力和优势完全的释放出来,提高了服务的利用率。所述方法包括:当接收到服务访问请求时,根据服务访问请求的域名信息,确定服务访问请求的请求地址;根据请求地址获取多个服务节点,在多个服务节点中确定目标服务节点;访问目标服务节点,基于目标服务节点,为服务访问请求提供目标服务。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种服务访问方法、装置、设备及计算机可读存储介质。
背景技术
随着互联网技术的飞速发展,大数据、云计算、海量存储在企业的运行中被广泛的应用,企业通过在线上部署各种服务,用户可以通过访问服务实现通过网络与企业进行交互。例如,许多企业部署有精算服务,在精算服务中使用数学模型刻画赔付损失、资金流入以及流出的完整过程,从而实现对精算风险变量未来的概率分布以及环境状态的假设。
相关技术中,服务中会包含存储资源、计算逻辑、依赖的服务资源以及服务的业务逻辑等各个不同的模块,且各个模块之间是紧耦合的,使得服务是一个独立的整体,这样,企业在部署服务时,需要将不同的服务注册在不同的服务器上,并基于不同的服务器满足用户对不同服务的访问需求。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
不同的服务是注册在不同的服务器上的,这一特性使得服务只能在部署后的本地运行,每个服务都是一个独立的个体,固定的场景下只能访问固定的服务,导致服务的适用范围狭窄,不能完全的服务的能力和优势释放出来,服务的利用率较低。
发明内容
有鉴于此,本发明提供了一种服务访问方法、装置、设备及计算机可读存储介质,主要目的在于解决目前固定的场景下只能访问固定的服务,导致服务的适用范围狭窄,不能完全的服务的能力和优势释放出来,服务的利用率较低的问题。
依据本发明第一方面,提供了一种服务访问方法,该方法包括:
当接收到服务访问请求时,根据所述服务访问请求的域名信息,确定所述服务访问请求的请求地址;
根据所述请求地址获取多个服务节点,在所述多个服务节点中确定目标服务节点,所述多个服务节点提供所述服务访问请求指示的目标服务且允许所述请求地址访问,所述目标服务节点的评价指标大于所述多个服务节点中的其他服务节点;
访问所述目标服务节点,基于所述目标服务节点,为所述服务访问请求提供所述目标服务。
在另一个实施例中,所述当接收到服务访问请求时,确定所述服务访问请求的请求地址之前,所述方法包括:
接收所述多个服务节点的节点信息,将所述多个服务节点的节点信息注册在注册中心,所述多个服务节点包括静态编程语言Java服务节点以及动态编程语言Python服务节点;
与所述多个服务节点建立数据链接,基于所述数据链接,接收所述多个服务节点返回的心跳响应,所述心跳响应用于指示所述多个服务节点的工作状态。
在另一个实施例中,所述与所述多个服务节点建立数据链接,基于所述数据链接,接收所述多个服务节点返回的心跳响应之后,所述方法还包括:
对于所述多个服务节点中的每个服务节点,统计等待接收所述服务节点返回心跳响应的等待时长;
若在所述等待时长小于等于默认时长时接收到所述心跳响应,则将所述服务节点的工作状态标注为健康状态;
若在所述等待时长大于第一时长阈值时尚未接收到所述心跳响应,则将所述服务节点的工作状态标注为不健康状态;
若在所述等待时长大于第二时长阈值时尚未接收到所述心跳响应,则将所述服务节点从所述注册中心上移除。
在另一个实施例中,所述根据所述请求地址获取多个服务节点,在所述多个服务节点中确定目标服务节点,包括:
查询允许所述请求地址访问的服务接口,在与所述服务接口匹配的服务节点中获取提供所述目标服务的所述多个服务节点,所述目标服务至少为Java服务或Python服务中的任一种;
计算所述多个服务节点中每个服务节点的评价指标;
按照所述评价指标从大到小的顺序对所述多个服务节点排序,将排在首位的服务节点作为所述目标服务节点。
在另一个实施例中,所述查询允许所述请求地址访问的服务接口,包括:
查询内网地址列表中是否包括所述请求地址,所述内网地址列表包括至少一个内网请求地址;
若所述内网地址列表中包括所述请求地址,则确定所述请求地址为内网请求地址,将内网接口作为所述服务接口;
若所述内网地址列表中不包括所述请求地址,则确定所述请求地址为外网请求地址,将外网接口作为所述服务接口。
在另一个实施例中,所述计算所述多个服务节点中每个服务节点的评价指标,包括:
对于所述多个服务节点中每个服务节点,获取所述服务节点的平均流量对应的第一分数、所述服务节点的响应时间对应的第二分数以及所述服务节点的高峰流量时长对应的第三分数;
获取所述平均流量对应的第一权重、所述响应时间对应的第二权重以及所述高峰流量时长对应的第三权重;
计算所述第一分数与所述第一权重的第一乘积、所述第二分数与所述第二权重的第二乘积和所述第三分数与所述第三权重的第三乘积;
计算所述第一乘积、所述第二乘积和所述第三乘积的乘积和,将所述乘积和作为所述服务节点的评价指标。
在另一个实施例中,所述方法还包括:
若所述服务访问请求中携带需求资源量,则在所述多个服务节点中确定空闲资源量大于所述需求资源量为候选服务节点;
按照所述评价指标从大到小的顺序对所述候选节点排序,将排在首位的服务节点作为所述目标服务节点。
依据本发明第二方面,提供了一种服务访问装置,该装置包括:
第一确定模块,用于当接收到服务访问请求时,根据所述服务访问请求的域名信息,确定所述服务访问请求的请求地址;
第二确定模块,用于根据所述请求地址获取多个服务节点,在所述多个服务节点中确定目标服务节点,所述多个服务节点提供所述服务访问请求指示的目标服务且允许所述请求地址访问,所述目标服务节点的评价指标大于所述多个服务节点中的其他服务节点;
访问模块,用于访问所述目标服务节点,基于所述目标服务节点,为所述服务访问请求提供所述目标服务。
在另一个实施例中,所述装置包括:
注册模块,用于接收所述多个服务节点的节点信息,将所述多个服务节点的节点信息注册在注册中心,所述多个服务节点包括静态编程语言Java服务节点以及动态编程语言Python服务节点;
建立模块,用于与所述多个服务节点建立数据链接,基于所述数据链接,接收所述多个服务节点返回的心跳响应,所述心跳响应用于指示所述多个服务节点的工作状态。
在另一个实施例中,所述装置还包括:
统计模块,用于对于所述多个服务节点中的每个服务节点,统计等待接收所述服务节点返回心跳响应的等待时长;
标注模块,用于若在所述等待时长小于等于默认时长时接收到所述心跳响应,则将所述服务节点的工作状态标注为健康状态;
所述标注模块,还用于若在所述等待时长大于第一时长阈值时尚未接收到所述心跳响应,则将所述服务节点的工作状态标注为不健康状态;
移除模块,用于若在所述等待时长大于第二时长阈值时尚未接收到所述心跳响应,则将所述服务节点从所述注册中心上移除。
在另一个实施例中,所述第二确定模块,包括:
查询单元,用于查询允许所述请求地址访问的服务接口,在与所述服务接口匹配的服务节点中获取提供所述目标服务的所述多个服务节点,所述目标服务至少为Java服务或Python服务中的任一种;
计算单元,用于计算所述多个服务节点中每个服务节点的评价指标;
排序单元,用于按照所述评价指标从大到小的顺序对所述多个服务节点排序,将排在首位的服务节点作为所述目标服务节点。
在另一个实施例中,所述查询单元,用于查询内网地址列表中是否包括所述请求地址,所述内网地址列表包括至少一个内网请求地址;若所述内网地址列表中包括所述请求地址,则确定所述请求地址为内网请求地址,将内网接口作为所述服务接口;若所述内网地址列表中不包括所述请求地址,则确定所述请求地址为外网请求地址,将外网接口作为所述服务接口。
在另一个实施例中,所述计算单元,用于对于所述多个服务节点中每个服务节点,获取所述服务节点的平均流量对应的第一分数、所述服务节点的响应时间对应的第二分数以及所述服务节点的高峰流量时长对应的第三分数;获取所述平均流量对应的第一权重、所述响应时间对应的第二权重以及所述高峰流量时长对应的第三权重;计算所述第一分数与所述第一权重的第一乘积、所述第二分数与所述第二权重的第二乘积和所述第三分数与所述第三权重的第三乘积;计算所述第一乘积、所述第二乘积和所述第三乘积的乘积和,将所述乘积和作为所述服务节点的评价指标。
在另一个实施例中,所述装置还包括:
确定单元,用于若所述服务访问请求中携带需求资源量,则在所述多个服务节点中确定空闲资源量大于所述需求资源量为候选服务节点;
所述排序单元,还用于按照所述评价指标从大到小的顺序对所述候选节点排序,将排在首位的服务节点作为所述目标服务节点。
依据本发明第三方面,提供了一种设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。
依据本发明第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法的步骤。
借由上述技术方案,本发明提供的一种服务访问方法、装置、设备及计算机可读存储介质,本发明当接收到服务访问请求时,根据服务访问请求的请求地址获取多个服务节点,在多个服务节点中确定为提供服务访问请求指示的目标服务且允许请求地址访问的目标服务节点,访问目标服务节点,基于目标服务节点,为服务访问请求提供目标服务,使得可以根据服务访问请求的请求地址和请求的目标服务,为服务访问请求提供相应的访问节点,不会受到发送服务访问请求的场景限制,扩大了服务的适用范围,将服务的能力和优势完全的释放出来,提高了服务的利用率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种服务访问方法流程示意图;
图2示出了本发明实施例提供的一种服务访问方法流程示意图;
图3A示出了本发明实施例提供的一种服务访问装置的结构示意图;
图3B示出了本发明实施例提供的一种服务访问装置的结构示意图;
图3C示出了本发明实施例提供的一种服务访问装置的结构示意图;
图3D示出了本发明实施例提供的一种服务访问装置的结构示意图;
图3E示出了本发明实施例提供的一种服务访问装置的结构示意图;
图4示出了本发明实施例提供的一种设备的装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种服务访问方法,如图1所示,该方法包括:
101、当接收到服务访问请求时,根据服务访问请求的域名信息,确定服务访问请求的请求地址。
102、根据请求地址获取多个服务节点,在多个服务节点中确定目标服务节点,多个服务节点提供服务访问请求指示的目标服务且允许请求地址访问,目标服务节点的评价指标大于多个服务节点中的其他服务节点。
103、访问目标服务节点,基于目标服务节点,为服务访问请求提供目标服务。
本发明实施例提供的方法,当接收到服务访问请求时,根据服务访问请求的请求地址获取多个服务节点,在多个服务节点中确定为提供服务访问请求指示的目标服务且允许请求地址访问的目标服务节点,访问目标服务节点,基于目标服务节点,为服务访问请求提供目标服务,使得可以根据服务访问请求的请求地址和请求的目标服务,为服务访问请求提供相应的访问节点,不会受到发送服务访问请求的场景限制,扩大了服务的适用范围,将服务的能力和优势完全的释放出来,提高了服务的利用率。
本发明实施例提供了一种服务访问方法,如图2所示,该方法包括:
201、在注册中心上注册多个服务节点。
在本发明实施例中,发明人认识到,通常来说一个能够访问Java(面向对象静态编程语言)服务的客户端是无法访问Python(面向对象动态编程语言)服务的,Java服务与Python服务之间是不互通的,导致访问Python服务受到当前所处场景的限制,因此,在本发明中将提供Java服务和Python服务的服务节点都注册在注册中心上,不仅实现对提供多种服务的服务节点进行统一管理,还实现了为多个服务节点进行服务授权,保证提供服务的安全性。在将多个服务节点注册到注册中心上时,首先,接收多个服务节点的节点信息,节点信息可以包括服务节点自身的服务名称、实例注册地址、端口等信息。随后,将多个服务节点的节点信息保存在注册中心中,从而实现将多个服务节点注册在注册中心。
其中,多个服务节点包括Java服务节点以及Python服务节点,也即多个服务节点中有的服务节点可以提供Java服务,有的服务节点可以提供Python服务。需要说明的是,通过上述注册服务节点的方式注册后,Java服务节点就可以正常被前端通过接口网关进行调用,而Python服务节点是无法被调用的,因此,在将Python服务节点注册在注册中心上时,需要基于服务搭建组件建立Python服务节点与注册中心之间的沟通桥梁,使Python服务作为应用框架贯彻整个服务访问系统对外提供服务,基于该服务搭建组件将Python服务节点的自身的服务名称、实例注册地址、端口等信息提供给注册中心,从而实现在注册中心上的注册,整个注册过程实质为Python服务节点主动将服务实例信息提供给注册中心的过程,以使Python服务节点可以像其他Java服务节点一样通过诸如Api-gateway等的接口网关直接被前端调用,也可以通过Client(客户端)、Http(Hyper Text Transfer Protocol,超文本传输协议)等以负载均衡的方式被其他服务节点调用。
在实际应用的过程中,考虑到不同的服务在启动时所依赖的环境配置是不同的,因此,需要为注册在注册中心上的服务节点部署多环境配置,并在后续服务节点启动为用户提供服务时,实现配置环境的一键切换。在部署多环境配置时,通过执行脚本,将服务节点在部署时的环境变量参数提取出来,作为该服务节点的环境配置进行存储。这样,当后续服务节点运行时,为服务节点确定与其匹配的环境配置,将当前的环境配置切换为与该服务节点匹配的环境配置。其中,在执行不同环境配置的切换时,可以基于命令脚本【sourceuwsgi.sh startstg】实现,本发明对设置环境配置以及切换环境配置的方式不进行具体限定。
当完成了服务节点在注册中心上的注册之后,为了实时对服务节点的工作状态进行监控,注册中心会与每个服务节点建立数据链接,基于数据链接,接收多个服务节点返回的用于指示多个服务节点的工作状态的心跳响应,从而根据接收到心跳响应的时间来确定服务节点的健康状态。具体地,对于多个服务节点中的每个服务节点,统计等待接收服务节点返回心跳响应的等待时长。若在等待时长小于等于默认时长时接收到心跳响应,则将服务节点的工作状态标注为健康状态;若在等待时长大于第一时长阈值时尚未接收到心跳响应,则将服务节点的工作状态标注为不健康状态;若在等待时长大于第二时长阈值时尚未接收到心跳响应,则将服务节点从注册中心上移除。例如,注册中心上可以设置发送心跳响应的默认时长是5秒,这样,若等待接收心跳响应的等待时长小于等于5秒,则注册中心确定该服务节点的工作状态为健康状态,采用健康状态对该服务节点进行标注,并持续接收该服务节点返回的心跳响应。进一步地,设置第一时长阈值为15秒,设置第二时长阈值为30秒,这样,注册中心会在15秒没收到该服务节点的心跳响应后,将该服务节点标注为不健康状态,在30秒没收到该服务节点的心跳响应后,将该服务节点在注册中心上摘除。通过上述过程,便可以利用注册中心的这一属性,为注册在其中的服务节点增加了心跳检测机制。需要说明的是,为了使注册中心在接收到心跳响应时可以知晓发送该心跳响应的服务节点是哪一个,服务节点可以在心跳响应中携带服务节点名称、实例注册地址、端口等信息用于表明身份。
另外,整个服务访问系统中还可以设置健康检查机制。其中,健康检查机制分为客户端健康检查和服务端健康检查。客户端健康检查主要关注服务节点上报心跳响应的方式、注册中心摘除不健康状态的服务节点的机制。而服务端健康检查,则关注探测服务节点的方式、灵敏度及设置服务节点健康状态的机制。意味着只要注册过的服务节点,如果不调用接口主动注销,这些服务节点都需要去维持健康检查的探测任务,而服务中心则可以随时摘除不健康的服务节点,从而减轻注册中心的压力。
需要说明的是,由于内网和外网可以提供的服务是不同的,内网调用服务的服务接口与外网调用服务的服务接口是不同的,使得内网中的请求地址和外网中的请求地址可以调用的服务节点也是不同的,因此,在完成了服务节点的注册后,可以将内网服务接口能够调用的服务节点与内网服务接口关联起来,将外网服务接口能够调用的服务节点与外网服务接口关联起来,从而保证基于正常的服务接口调用正常的服务节点。
202、当接收到服务访问请求时,追踪服务访问请求的域名信息,对域名信息进行解析,得到请求地址。
在本发明实施例中,为了对发送服务访问请求的发送方进行区分,确定发送方具有的访问权限以及需要访问的服务节点等,当接收到服务访问请求时,需要先获取发送该服务访问请求的域名信息,随后对该域名信息进行解析,得到请求地址,从而根据请求地址来查询权限等相关信息。
其中,域名信息是指产品统一对外服务暴露的可访问的域名,可以是Http协议也可以是Https协议等。当接收到服务访问请求时,便可以通过读取协议来获取该域名信息,对该域名信息进行DNS(Domain Name System,域名系统)域名解析,得到请求地址,请求地址可为发送方的IP(Internet Protocol,网络之间互连的协议)地址。
需要说明的是,考虑到可能存在一些加急的服务访问请求,且加急的服务访问请求会携带加急权重,因此,如果在服务访问请求中获取到加急权重,则可以根据加急权重,适当将服务访问请求的处理顺序提前。例如,假设当前接收到的服务访问请求的加急权重为50%,目前尚未接收到其他任何的加急服务访问请求,则优先处理该加急权重为50%的服务访问请求即可。如果当前接收到加急权重分别为80%和20%的服务访问请求,则将该加急权重为50%的服务访问请求调整至加急权重为20%的服务访问请求之前,且加急权重为80%的服务访问请求之后即可。
203、查询允许请求地址访问的服务接口,在与服务接口匹配的服务节点中获取提供目标服务的多个服务节点。
在本发明实施例中,考虑到请求地址是分为外网请求地址和内网请求地址的,不同的请求地址允许访问的内容是不一样的,网关接口会将内部服务和外部服务隔离开来使用不同的服务接口访问,从而保障后台服务的安全性,因此,需要查询允许请求地址访问的服务接口,在与服务接口匹配的服务节点中获取提供目标服务的多个服务节点。其中,为了给请求地址确定服务接口,可以在注册中心中设置一个内网地址列表,在内网地址列表中罗列全部的内网请求地址,也即将允许访问内网的地址收录在内网地址列表中,以便后续基于该内网地址列表对请求地址进行识别,从而为该服务访问请求确定多个服务节点。
这样,为了确定提供服务访问请求指示的目标服务且允许请求地址访问的多个服务节点,首先需要为该请求地址确定服务接口,以便确定哪些服务节点是允许该请求地址访问的。具体地,查询内网地址列表中是否包括请求地址,若内网地址列表中包括请求地址,则确定请求地址为内网请求地址,将内网接口作为服务接口,后续基于该内网接口确定多个服务节点;若内网地址列表中不包括请求地址,则确定请求地址为外网请求地址,将外网接口作为服务接口,后续基于该外网接口确定多个服务节点。随后,便可以在与服务接口匹配的服务节点中获取提供服务访问请求指示的目标服务的多个服务节点,进而在后续为该请求地址确定目标服务节点。其中,由于服务节点是可以提供Java服务或Python服务中的任一种服务的,只有提供相应服务的服务节点才能满足服务访问请求的需求,因此,在确定多个服务节点时,需要确定服务访问请求的指示的目标服务是Java服务还是Python服务,在与该服务接口匹配的全部节点中确定提供该目标服务的服务节点作为多个服务节点,也即如果服务访问请求需求的服务为Java服务,则确定多个提供Java服务的服务节点作为多个服务节点;如果服务访问请求需求的服务为Python服务,则确定多个提供Python服务的服务节点作为多个服务节点。
另外,为了减轻服务节点的负担,还可以为每个服务节点设置流量阈值,如果该服务节点当前的访问量已经达到了流量阈值,则暂时不考虑将该服务节点作为多个服务节点中的一个,而是选取访问量暂未达到流量阈值的多个服务节点。
204、计算多个服务节点中每个服务节点的评价指标,按照评价指标从大到小的顺序对多个服务节点排序,将排在首位的服务节点作为目标服务节点。
在本发明实施例中,为了在多个服务节点中选取到最优的服务节点,可以为服务节点的工作状态进行评分,并为每个分数设置权重,按照权重计算每个服务节点的评价指标,并基于评价指标选择最优的服务节点进行服务,也即选择评价指标最大的服务节点作为目标服务节点。例如,可采用服务节点的平均流量、响应时间和高峰流量时长来表示服务节点的工作状态,并分别设置平均流量的权重为50%,响应时间的权重为30%,高峰流量时长的权重为20%,这样,便可以计算得到每个服务节点的评价指标。例如,针对平均流量,可以设置平均流量处于【0~50】的分数为10分,处于【50~100】的分数为20分,处于【100~500】的分数为30分。针对响应时间,由于响应时间越短证明服务节点的服务质量越好,因此,可以设置响应时间为1-2秒的分数为10分,响应时间为3-5秒的分数为8分,响应设置为6-8秒的分数为4分,响应时间大于8秒的分数为2分。针对高峰流量时间,由于服务节点处理请求的速度越快高峰流量时间就会越短,因此,可以设置高峰流量时长处于【0秒~10秒】的分数为100,处于【10秒~20秒】的分数为50,处于【20秒~30秒】的分数为0。综上所述,假如某服务节点的响应时间为2秒,可以确定响应时间对应的第二分数为10,在计算评价指标时,采用该分数10与响应时间对应的权重进行计算即可。
这样,通过上述的过程,对于多个服务节点中每个服务节点,可以依次获取服务节点的平均流量对应的第一分数、服务节点的响应时间对应的第二分数以及服务节点的高峰流量时长对应的第三分数。随后,获取平均流量对应的第一权重、响应时间对应的第二权重以及高峰流量时长对应的第三权重。最后,计算第一分数与第一权重的第一乘积、第二分数与第二权重的第二乘积和第三分数与第三权重的第三乘积,并计算第一乘积、第二乘积和第三乘积的乘积和,将乘积和作为服务节点的评价指标。例如,假设某服务节点的第一分数、第二份数和第三分数分别为10分、8分和100分,第一权重、第二权重和第三权重分别为20%、50%和30%,则计算10×20%=2作为第一乘积,计算8×50%=4作为第二乘积,计算100×30%=30作为第三乘积,这样,计算乘积和为2+4+30=36,36即为某服务节点的评价指标。
综上所述,通过执行上述过程,便可以得到多个服务节点中每个服务节点的评价指标,按照评价指标从大到小的顺序对多个服务节点排序,将排在首位的服务节点作为目标服务节点,也即将评价指标最大的服务节点作为目标服务节点,保证为本次的服务访问请求提供服务的目标服务节点在工作状态上是最优的。
在实际应用的过程中,有些服务访问请求在本次请求的服务中可能需要大量的资源量,为了防止分配的服务节点上的空闲资源量无法满足服务访问请求的需求,服务访问请求中还可能会携带需求资源量,用需求资源量对提供服务的目标服务节点进行最基本的限定。若服务访问请求中携带需求资源量,则在获取到多个服务节点后,需要先在多个服务节点中确定空闲资源量大于需求资源量的候选服务节点,之后,再按照评价指标从大到小的顺序对候选节点排序,将排在首位的服务节点作为目标服务节点,从而保证确定的目标服务节点上空闲的资源量能够满足服务访问请求的需求。
需要说明的是,为了保证服务节点所提供服务的质量,网关接口还可以配置相关规则来实现流量控制、限额、过滤、熔断、服务优先级控制、超时处理、负载均衡等机制来保护应用服务的安全,且通过对网关接口访问日志和运行监控数据的统计分析,可以了解业务服务的调用情况、调用趋势、运行情况等等。可以监控并统计分析哪些服务调用的多,哪些服务调用的少,哪个客户调用的多,以及高峰流量时长、平均流量、响应时间等数据,这些数据将有助于我们对提供网关接口的服务进行运维运营或重构,有助于我们做出合理决策。
205、访问目标服务节点,基于目标服务节点,为服务访问请求提供目标服务。
在本发明实施例中,当确定了目标服务节点后,便可以访问该目标服务节点,基于该目标服务节点,提供服务访问请求指定的目标服务。其中,目标服务可为针对Java服务或者Python服务的数据读取、数据添加、数据删除、数据修改、数据查询等操作,本发明对目标服务不进行具体限定。其中,对提供Python服务的服务节点访问的重点在于协议转化,服务节点上都装有Nginx(反向代理服务器)来将Http转为为uwsgi(网络服务器)服务提供的socket(端口号)通信方式,从而保证可以访问服务节点上的python falsk web(基于面向对象动态编程语言的网络框架)服务。
需要说明的是,也可以在注册中心中限制每个请求地址具有的权限,并在基于目标服务节点提供目标服务时,按照请求地址具有的权限提供。例如,假设某请求地址在注册中心中限制的权限仅为数据读取,则该请求地址享受的目标服务仅为在目标服务节点中读取数据,若该请求地址想要删除目标服务节点中的数据,是禁止执行的。
本发明实施例提供的方法,当接收到服务访问请求时,根据服务访问请求的请求地址获取多个服务节点,在多个服务节点中确定为提供服务访问请求指示的目标服务且允许请求地址访问的目标服务节点,访问目标服务节点,基于目标服务节点,为服务访问请求提供目标服务,使得可以根据服务访问请求的请求地址和请求的目标服务,为服务访问请求提供相应的访问节点,不会受到发送服务访问请求的场景限制,扩大了服务的适用范围,将服务的能力和优势完全的释放出来,提高了服务的利用率。
进一步地,作为图1所述方法的具体实现,本发明实施例提供了一种服务访问装置,如图3A所示,所述装置包括:第一确定模块301,第二确定模块302和访问模块303。
该第一确定模块301,用于当接收到服务访问请求时,根据所述服务访问请求的域名信息,确定所述服务访问请求的请求地址;
该第二确定模块302,用于根据所述请求地址获取多个服务节点,在所述多个服务节点中确定目标服务节点,所述多个服务节点提供所述服务访问请求指示的目标服务且允许所述请求地址访问,所述目标服务节点的评价指标大于所述多个服务节点中的其他服务节点;
该访问模块303,用于访问所述目标服务节点,基于所述目标服务节点,为所述服务访问请求提供所述目标服务。
在具体的应用场景中,如图3B所示,该装置包括:注册模块304和建立模块305。
该注册模块304,用于接收所述多个服务节点的节点信息,将所述多个服务节点的节点信息注册在注册中心,所述多个服务节点包括静态编程语言Java服务节点以及动态编程语言Python服务节点;
该建立模块305,用于与所述多个服务节点建立数据链接,基于所述数据链接,接收所述多个服务节点返回的心跳响应,所述心跳响应用于指示所述多个服务节点的工作状态。
在具体的应用场景中,如图3C所示,该装置还包括:统计模块306,标注模块307和移除模块308。
该统计模块306,用于对于所述多个服务节点中的每个服务节点,统计等待接收所述服务节点返回心跳响应的等待时长;
该标注模块307,用于若在所述等待时长小于等于默认时长时接收到所述心跳响应,则将所述服务节点的工作状态标注为健康状态;
该标注模块307,还用于若在所述等待时长大于第一时长阈值时尚未接收到所述心跳响应,则将所述服务节点的工作状态标注为不健康状态;
该移除模块308,用于若在所述等待时长大于第二时长阈值时尚未接收到所述心跳响应,则将所述服务节点从所述注册中心上移除。
在具体的应用场景中,如图3D所示,该第二确定模块302,包括:查询单元3021,计算单元3022和排序单元3023。
该查询单元3021,用于查询允许所述请求地址访问的服务接口,在与所述服务接口匹配的服务节点中获取提供所述目标服务的所述多个服务节点,所述目标服务至少为Java服务或Python服务中的任一种;
该计算单元3022,用于计算所述多个服务节点中每个服务节点的评价指标;
该排序单元3023,用于按照所述评价指标从大到小的顺序对所述多个服务节点排序,将排在首位的服务节点作为所述目标服务节点。
在具体的应用场景中,该查询单元3021,用于查询内网地址列表中是否包括所述请求地址,所述内网地址列表包括至少一个内网请求地址;若所述内网地址列表中包括所述请求地址,则确定所述请求地址为内网请求地址,将内网接口作为所述服务接口;若所述内网地址列表中不包括所述请求地址,则确定所述请求地址为外网请求地址,将外网接口作为所述服务接口。
在具体的应用场景中,该计算单元3022,用于对于所述多个服务节点中每个服务节点,获取所述服务节点的平均流量对应的第一分数、所述服务节点的响应时间对应的第二分数以及所述服务节点的高峰流量时长对应的第三分数;获取所述平均流量对应的第一权重、所述响应时间对应的第二权重以及所述高峰流量时长对应的第三权重;计算所述第一分数与所述第一权重的第一乘积、所述第二分数与所述第二权重的第二乘积和所述第三分数与所述第三权重的第三乘积;计算所述第一乘积、所述第二乘积和所述第三乘积的乘积和,将所述乘积和作为所述服务节点的评价指标。
在具体的应用场景中,如图3E所示,该装置还包括:确定单元3024。
该确定单元3024,用于若所述服务访问请求中携带需求资源量,则在所述多个服务节点中确定空闲资源量大于所述需求资源量为候选服务节点;
该排序单元3023,还用于按照所述评价指标从大到小的顺序对所述候选节点排序,将排在首位的服务节点作为所述目标服务节点。
本发明实施例提供的装置,当接收到服务访问请求时,根据服务访问请求的请求地址获取多个服务节点,在多个服务节点中确定为提供服务访问请求指示的目标服务且允许请求地址访问的目标服务节点,访问目标服务节点,基于目标服务节点,为服务访问请求提供目标服务,使得可以根据服务访问请求的请求地址和请求的目标服务,为服务访问请求提供相应的访问节点,不会受到发送服务访问请求的场景限制,扩大了服务的适用范围,将服务的能力和优势完全的释放出来,提高了服务的利用率。
需要说明的是,本发明实施例提供的一种服务访问装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
在示例性实施例中,参见图4,还提供了一种设备,该设备400包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的服务访问方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的服务访问方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种服务访问方法,其特征在于,包括:
当接收到服务访问请求时,根据所述服务访问请求的域名信息,确定所述服务访问请求的请求地址;
根据所述请求地址获取多个服务节点,在所述多个服务节点中确定目标服务节点,所述多个服务节点提供所述服务访问请求指示的目标服务且允许所述请求地址访问,所述目标服务节点的评价指标大于所述多个服务节点中的其他服务节点;
访问所述目标服务节点,基于所述目标服务节点,为所述服务访问请求提供所述目标服务。
2.根据权利要求1所述的方法,其特征在于,所述当接收到服务访问请求时,确定所述服务访问请求的请求地址之前,所述方法包括:
接收所述多个服务节点的节点信息,将所述多个服务节点的节点信息注册在注册中心,所述多个服务节点包括静态编程语言Java服务节点以及动态编程语言Python服务节点;
与所述多个服务节点建立数据链接,基于所述数据链接,接收所述多个服务节点返回的心跳响应,所述心跳响应用于指示所述多个服务节点的工作状态。
3.根据权利要求2所述的方法,其特征在于,所述与所述多个服务节点建立数据链接,基于所述数据链接,接收所述多个服务节点返回的心跳响应之后,所述方法还包括:
对于所述多个服务节点中的每个服务节点,统计等待接收所述服务节点返回心跳响应的等待时长;
若在所述等待时长小于等于默认时长时接收到所述心跳响应,则将所述服务节点的工作状态标注为健康状态;
若在所述等待时长大于第一时长阈值时尚未接收到所述心跳响应,则将所述服务节点的工作状态标注为不健康状态;
若在所述等待时长大于第二时长阈值时尚未接收到所述心跳响应,则将所述服务节点从所述注册中心上移除。
4.根据权利要求1所述的方法,其特征在于,所述根据所述请求地址获取多个服务节点,在所述多个服务节点中确定目标服务节点,包括:
查询允许所述请求地址访问的服务接口,在与所述服务接口匹配的服务节点中获取提供所述目标服务的所述多个服务节点,所述目标服务至少为Java服务或Python服务中的任一种;
计算所述多个服务节点中每个服务节点的评价指标;
按照所述评价指标从大到小的顺序对所述多个服务节点排序,将排在首位的服务节点作为所述目标服务节点。
5.根据权利要求4所述的方法,其特征在于,所述查询允许所述请求地址访问的服务接口,包括:
查询内网地址列表中是否包括所述请求地址,所述内网地址列表包括至少一个内网请求地址;
若所述内网地址列表中包括所述请求地址,则确定所述请求地址为内网请求地址,将内网接口作为所述服务接口;
若所述内网地址列表中不包括所述请求地址,则确定所述请求地址为外网请求地址,将外网接口作为所述服务接口。
6.根据权利要求4所述的方法,其特征在于,所述计算所述多个服务节点中每个服务节点的评价指标,包括:
对于所述多个服务节点中每个服务节点,获取所述服务节点的平均流量对应的第一分数、所述服务节点的响应时间对应的第二分数以及所述服务节点的高峰流量时长对应的第三分数;
获取所述平均流量对应的第一权重、所述响应时间对应的第二权重以及所述高峰流量时长对应的第三权重;
计算所述第一分数与所述第一权重的第一乘积、所述第二分数与所述第二权重的第二乘积和所述第三分数与所述第三权重的第三乘积;
计算所述第一乘积、所述第二乘积和所述第三乘积的乘积和,将所述乘积和作为所述服务节点的评价指标。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述服务访问请求中携带需求资源量,则在所述多个服务节点中确定空闲资源量大于所述需求资源量为候选服务节点;
按照所述评价指标从大到小的顺序对所述候选节点排序,将排在首位的服务节点作为所述目标服务节点。
8.一种服务访问装置,其特征在于,包括:
第一确定模块,用于当接收到服务访问请求时,根据所述服务访问请求的域名信息,确定所述服务访问请求的请求地址;
第二确定模块,用于根据所述请求地址获取多个服务节点,在所述多个服务节点中确定目标服务节点,所述多个服务节点提供所述服务访问请求指示的目标服务且允许所述请求地址访问,所述目标服务节点的评价指标大于所述多个服务节点中的其他服务节点;
访问模块,用于访问所述目标服务节点,基于所述目标服务节点,为所述服务访问请求提供所述目标服务。
9.一种设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010045595.8A CN111274604B (zh) | 2020-01-16 | 2020-01-16 | 服务访问方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010045595.8A CN111274604B (zh) | 2020-01-16 | 2020-01-16 | 服务访问方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274604A true CN111274604A (zh) | 2020-06-12 |
CN111274604B CN111274604B (zh) | 2022-11-22 |
Family
ID=70997132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010045595.8A Active CN111274604B (zh) | 2020-01-16 | 2020-01-16 | 服务访问方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274604B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970194A (zh) * | 2020-07-28 | 2020-11-20 | 浙江九州云信息科技有限公司 | 一种api网关的配置及请求处理方法 |
CN112689007A (zh) * | 2020-12-23 | 2021-04-20 | 江苏苏宁云计算有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN113014673A (zh) * | 2021-04-08 | 2021-06-22 | 广州趣丸网络科技有限公司 | 一种服务调用优化方法和装置 |
CN114205401A (zh) * | 2020-09-17 | 2022-03-18 | 英业达科技有限公司 | 网络服务去中心化的数据传输系统及其方法 |
CN114422511A (zh) * | 2021-12-23 | 2022-04-29 | 北京八分量信息科技有限公司 | 异构网络中数据节点的管理方法、装置及相关产品 |
CN115242625A (zh) * | 2022-06-24 | 2022-10-25 | 平安银行股份有限公司 | 服务部署方法、装置、计算机设备及可读存储介质 |
WO2023217108A1 (zh) * | 2022-05-10 | 2023-11-16 | 中国移动通信有限公司研究院 | 第一平台的接入方法、第一平台、系统和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559120A (zh) * | 2013-11-13 | 2014-02-05 | 北京网秦天下科技有限公司 | 日志记录方法以及服务器 |
CN106101232A (zh) * | 2016-06-16 | 2016-11-09 | 北京思源置地科技有限公司 | 负载均衡方法及装置 |
CN106201694A (zh) * | 2016-07-13 | 2016-12-07 | 北京农信互联科技有限公司 | 一种分布式系统下执行定时任务的配置方法及系统 |
CN109743392A (zh) * | 2019-01-07 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
CN110336874A (zh) * | 2019-07-03 | 2019-10-15 | 北京蜜莱坞网络科技有限公司 | 一种访问服务的方法、装置、服务器及存储介质 |
-
2020
- 2020-01-16 CN CN202010045595.8A patent/CN111274604B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559120A (zh) * | 2013-11-13 | 2014-02-05 | 北京网秦天下科技有限公司 | 日志记录方法以及服务器 |
CN106101232A (zh) * | 2016-06-16 | 2016-11-09 | 北京思源置地科技有限公司 | 负载均衡方法及装置 |
CN106201694A (zh) * | 2016-07-13 | 2016-12-07 | 北京农信互联科技有限公司 | 一种分布式系统下执行定时任务的配置方法及系统 |
CN109743392A (zh) * | 2019-01-07 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
CN110336874A (zh) * | 2019-07-03 | 2019-10-15 | 北京蜜莱坞网络科技有限公司 | 一种访问服务的方法、装置、服务器及存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970194A (zh) * | 2020-07-28 | 2020-11-20 | 浙江九州云信息科技有限公司 | 一种api网关的配置及请求处理方法 |
CN111970194B (zh) * | 2020-07-28 | 2022-06-10 | 浙江九州云信息科技有限公司 | 一种api网关的配置及请求处理方法 |
CN114205401A (zh) * | 2020-09-17 | 2022-03-18 | 英业达科技有限公司 | 网络服务去中心化的数据传输系统及其方法 |
CN112689007A (zh) * | 2020-12-23 | 2021-04-20 | 江苏苏宁云计算有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN113014673A (zh) * | 2021-04-08 | 2021-06-22 | 广州趣丸网络科技有限公司 | 一种服务调用优化方法和装置 |
CN113014673B (zh) * | 2021-04-08 | 2022-11-04 | 广州趣丸网络科技有限公司 | 一种服务调用优化方法和装置 |
CN114422511A (zh) * | 2021-12-23 | 2022-04-29 | 北京八分量信息科技有限公司 | 异构网络中数据节点的管理方法、装置及相关产品 |
WO2023217108A1 (zh) * | 2022-05-10 | 2023-11-16 | 中国移动通信有限公司研究院 | 第一平台的接入方法、第一平台、系统和存储介质 |
CN115242625A (zh) * | 2022-06-24 | 2022-10-25 | 平安银行股份有限公司 | 服务部署方法、装置、计算机设备及可读存储介质 |
CN115242625B (zh) * | 2022-06-24 | 2024-03-19 | 平安银行股份有限公司 | 服务部署方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111274604B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274604B (zh) | 服务访问方法、装置、设备及计算机可读存储介质 | |
CN107872402B (zh) | 全局流量调度的方法、装置及电子设备 | |
US8429748B2 (en) | Network traffic analysis using a dynamically updating ontological network description | |
US8359378B2 (en) | Network system and method of administrating networks | |
CN112350854B (zh) | 一种流量故障定位方法、装置、设备及存储介质 | |
CN109600280B (zh) | 压力测试系统、方法、装置及计算机可读存储介质 | |
CN108989151B (zh) | 用于网络或应用性能管理的流量采集方法 | |
CN109787827B (zh) | 一种cdn网络监控的方法及装置 | |
CN112087520B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
EP3883185A1 (en) | Fault root cause identification method and apparatus and device | |
KR100951131B1 (ko) | 트랜잭션 지원 방법 및 장치 | |
CN113190417A (zh) | 微服务状态检测方法、模型的训练方法、设备及存储介质 | |
CN114124773B (zh) | 一种端口块地址转换的测试系统及方法 | |
CN108075909A (zh) | 一种流量预测方法和装置 | |
US20220263771A1 (en) | Methods, systems and computer readable media for diagnosing network function virtualization performance | |
CN115580618A (zh) | 一种负载均衡方法、装置、设备及介质 | |
CN112631577B (zh) | 一种模型的调度方法、模型调度器以及模型安全测试平台 | |
CN113419852A (zh) | 微服务的请求响应方法、装置、设备及存储介质 | |
Pfitscher et al. | Guiltiness: A practical approach for quantifying virtual network functions performance | |
CN111162929A (zh) | 一种分级管理方法和系统 | |
CN109889619A (zh) | 基于区块链的异常域名监测方法及装置 | |
CN115118473B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115174343B (zh) | B/s架构页面巡检方法、装置和页面巡检系统 | |
CN116723111B (zh) | 业务请求的处理方法、系统及电子设备 | |
CN113225225B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220520 Address after: 518000 China Aviation Center 2901, No. 1018, Huafu Road, Huahang community, Huaqiang North Street, Futian District, Shenzhen, Guangdong Province Applicant after: Shenzhen Ping An medical and Health Technology Service Co.,Ltd. Address before: Room 12G, Area H, 666 Beijing East Road, Huangpu District, Shanghai 200001 Applicant before: PING AN MEDICAL AND HEALTHCARE MANAGEMENT Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |