服务地址的读取装置、系统和方法制造方法及图纸

技术编号:15520575 阅读:42 留言:0更新日期:2017-06-04 10:06
本发明专利技术提供了一种服务地址的读取装置、系统和方法。该装置包括:网关,用于接收来自客户端的调用目标服务的请求,请求中包括目标服务名称;服务注册模块,用于实时更新各服务的服务名称和对应的服务地址;服务信息库,用于存储服务名称和服务地址;服务加载模块,用于按预设时间间隔将服务信息库中的服务名称和服务地址加载至缓存中;缓存,用于提供服务名称供网关查找,若从服务名称中查找到目标服务名称,则将目标服务名称对应的服务地址发送至客户端。本发明专利技术实时更新服务的服务名称和服务地址,保证了服务地址地准确性,并将服务名称和服务地址加载在缓存中,加快了服务地址的读取速度,从而达到了快速准确获取服务地址的效果。

Service address reading device, system and method

The invention provides a service address reading device, a system and a method thereof. The device comprises a gateway for receiving a request to call the target service from the client, including the target service name request; service registration module, real-time updates for each service service name and address corresponding to the service; service information database for storing the service name and address of service; service loading module according to preset time intervals in the library information service service name and service address is loaded into the cache; cache, for providing the service name for the gateway to find, if from the service name to find the target service name, the target service name corresponding to the service address sent to the client. The invention relates to a real-time update service service name and address for service, to ensure the accuracy of the service address, name and address of service and service will be loaded in the cache, fast reading speed service address, so as to achieve fast and accurate service address effect.

【技术实现步骤摘要】
服务地址的读取装置、系统和方法
本专利技术涉及通信领域,特别是涉及一种服务地址的读取装置、系统和方法。
技术介绍
在互联网技术中,可以通过各种基于HTTP协议的接口服务来支持各种功能,也可以手动开启或关闭某些服务以达到相应的功能。通常一个服务提供了接口后,客户端在通过接口调用该服务之前,需要先获取服务的服务地址(IP地址和端口号等),然后才能使用该服务。例如:客户端调用获取布局的服务时,调用请求的形式如下:www.xxx.com/getlayout,其中,实际请求的是服务地址http://192.168.1.2:8080/getlayout,在前述请求中,www.xxx.com是域名,getlayout是服务名称,服务器需要根据服务名称查找对应的服务地址,因此需要通过查找服务注册表将服务名称映射到服务地址上。有些情况下,服务地址是动态分配的,且服务本身也有生命周期。因此在调用服务前需要比较精准的方式来保证获取服务地址的速度和准确度。但现有技术有,读取服务地址的速度和准确度并不高。针对现有技术中无法快速准确获取服务地址的问题,目前业界没有理想的解决方式。
技术实现思路
本专利技术目的在于提供一种服务地址的读取方法及装置,旨在解决现有技术中无法快速准确获取服务地址的问题。第一方面,本专利技术提供了一种服务地址的读取装置,该装置包括:网关,用于接收来自客户端的调用目标服务的请求,请求中包括目标服务名称;服务注册模块,用于实时更新各服务的服务名称和对应的服务地址;服务信息库,用于存储服务名称和服务地址;服务加载模块,用于按预设时间间隔将服务信息库中的服务名称和服务地址加载至缓存中;缓存,用于提供服务名称供网关查找,若从服务名称中查找到目标服务名称,则将目标服务名称对应的服务地址发送至客户端。第二方面,本专利技术提供了一种服务地址的读取系统,该系统包括:客户端,用于发送调用目标服务的请求,所述请求中包括目标服务名称;以及本专利技术提供的任一种服务地址的读取装置。第三方面,本专利技术提供了一种服务地址的读取方法,该方法包括:接收来自客户端的调用目标服务的请求,请求中包括目标服务名称;实时更新服务名称和对应的服务地址;按预设时间间隔加载服务名称和服务地址;查找目标服务名称,若查找到目标服务名称,则将目标服务名称对应的服务地址发送至客户端;若没有查找到目标服务名称,则加载目标服务名称,并将目标服务名称对应的目标服务地址发送至客户端。第四方面,本专利技术提供了一种服务地址的读取方法,该方法包括:客户端发送调用目标服务的请求,请求中包括目标服务名称;网关接收来自客户端的请求;服务信息库进行实时更新服务名称和对应的服务地址;服务加载模块按预设时间间隔将服务信息库中的服务名称和服务地址加载至缓存中;缓存提供服务名称供网关查找,若从服务名称中查找到目标服务名称,则将目标服务名称对应的服务地址发送至客户端;若没有查找到目标服务名称,则服务加载模块在缓存中加载目标服务名称对应的服务地址之后,缓存将目标服务对应的服务地址发送至客户端。本专利技术实时更新服务的服务名称和服务地址,保证了服务地址地准确性,并将服务名称和服务地址加载在缓存中,加快了服务地址的读取速度,从而达到了快速准确获取服务地址的效果。附图说明图1是本专利技术实施例提供的服务地址的读取系统的示意图;图2是本专利技术实施例提供的服务地址的读取方法的流程图;图3是本专利技术优选实施例提供的服务地址的读取方法的流程图。具体实施方式为了使本专利技术要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。图1是本专利技术实施例提供的服务地址的读取系统的示意图,如图1所示,该系统包括客户端110、服务地址的读取装置120和服务130。客户端110用于发送调用目标服务的请求,请求中包括目标服务名称。客户端110可以请求调用服务,客户端110可以是Android系统、Web系统或其他系统。服务地址的读取装置120用于提供目标服务名称对应的服务地址供客户端读取。服务130可以是一个或多个,可以对外提供服务地址,客户端可通过读取服务地址,进而获取服务的数据。进一步地,图1示出了服务地址的读取装置的具体结果,如图1所示,服务地址的读取装置120中进一步包括网关121、缓存122、服务加载模块123、服务信息库124、服务注册模块125。优选地,该系统还可以包括服务监控模块126。网关121用于接收来自客户端的调用目标服务的请求,请求中包括目标服务名称。网关121用于接收调用服务的请求,根据请求的服务名称从缓存122中找到对应的服务地址,并将请求重定向到该服务地址上。优选地,网关121可以为OpenResty平台,其内部集成了大量精良的lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。OpenResty充分利用了Nginx的非阻塞IO模型,能对客户端发起的服务请求进行高性能响应。获取服务地址的功能可以使用Lua脚本编写,该脚本直接运行在Nginx服务内部,从而提高了执行效率。具体地,关于OpenResty的编译:本专利技术实施例中OpenResty选用的版本为openresty-1.9.7.3.tar.gz,依赖的组件有pcre-8.35、openssl-1.0.2j、zlib-1.2.8配置nginx.conf的方式是在配置文件中增加:lua_package_path"/usr/local/openresty/lualib/?.lua;;";在location模块中增加:content_by_lua_fileconf/lua/handleService.lua;其中,handleService.lua为编写的lua脚本。lua脚本连接缓存122,然后根据服务名称模糊查找以该服务名称开头的key对应的value。如果没有找到,则调用服务加载模块123的接口加载该服务的服务地址到缓存122中。缓存122用于提供服务名称供网关查找,若从服务名称中查找到目标服务名称,则将目标服务名称对应的服务地址发送至客户端。为了保证获取服务地址的效率,服务地址都是存放在缓存122中,直接从缓存122里获取服务地址的方式不但节省了时间,而且提高了响应速度,同时也节省了硬件资源。缓存122可以使用Redis,Redis是一个key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。本专利技术实施例中使用Redis作为缓存,存储服务名称和服务地址,其中key的拼装规则为服务的_ip_端口。例如:服务的名称为getlayout,该服务对应多个网络地址(192.168.1.1和192.168.1.2),那么保存在Redis中的key-value分别是:key为getlayout_19216811_8080,value为192.168.1.1:8080key为getlayout_19216812_8080,value为192.168.1.2:8080在查询服务名称getlay本文档来自技高网...
服务地址的读取装置、系统和方法

【技术保护点】
一种服务地址的读取装置,其特征在于,包括:网关,用于接收来自客户端的调用目标服务的请求,所述请求中包括目标服务名称;服务注册模块,用于实时更新各服务的服务名称和对应的服务地址;服务信息库,用于存储所述服务名称和所述服务地址;服务加载模块,用于按预设时间间隔将所述服务信息库中的所述服务名称和所述服务地址加载至所述缓存中;缓存,用于提供所述服务名称供所述网关查找,若从所述服务名称中查找到所述目标服务名称,则将所述目标服务名称对应的服务地址发送至所述客户端。

【技术特征摘要】
1.一种服务地址的读取装置,其特征在于,包括:网关,用于接收来自客户端的调用目标服务的请求,所述请求中包括目标服务名称;服务注册模块,用于实时更新各服务的服务名称和对应的服务地址;服务信息库,用于存储所述服务名称和所述服务地址;服务加载模块,用于按预设时间间隔将所述服务信息库中的所述服务名称和所述服务地址加载至所述缓存中;缓存,用于提供所述服务名称供所述网关查找,若从所述服务名称中查找到所述目标服务名称,则将所述目标服务名称对应的服务地址发送至所述客户端。2.如权利要求1所述的装置,其特征在于,还包括:服务监控模块,用于通过所述服务地址读取所述服务的监控数据;若无法获取所述监控数据或所述监控数据不正常,则删除该服务在所述服务信息库中的所述服务名称和对应的所述服务地址。3.如权利要求1所述的装置,其特征在于,所述服务信息库还用于:在接收到所述服务名称和所述服务地址后,实时地进行保存,所述服务在启动完成后主动提供所述服务名称和所述服务地址。4.如权利要求1所述的装置,其特征在于,所述网关为OpenResty平台。5.一种服务地址的读取系统,其特征在于,包括:客户端,用于发送调用目标服务的请求,所述请求中包括目标服务名称;权利要求1-4任一项所述的服务地址的读取装置。6.一种服务地址的读取方法,其特征在于,包括:接收来自客户端的调用目标服务的请求,所述请求中包括目标服务名称;实时更新服务名称和对应的服务地址;按预设时间间隔加载所述服务名称和所述服务地址;查找所述目标服务名称,若查找到所述目标服务名称,则将...

【专利技术属性】
技术研发人员:高保强
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1