一种服务发现方法和系统技术方案

技术编号:23193405 阅读:33 留言:0更新日期:2020-01-24 17:07
本发明专利技术公开了一种服务发现方法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:接收部署端发送的服务查询请求;根据所述服务查询请求在注册服务列表中查询相应的服务,并将该服务的服务提供端的地址数据向部署端返回;其中,所述地址数据用于由部署端写入服务调用端的调用配置文件,以使服务调用端可调用该服务。该实施方式能够适用于复杂服务调用环境,并具有轻量级,配置简单灵活的优点。

A service discovery method and system

【技术实现步骤摘要】
一种服务发现方法和系统
本专利技术涉及计算机
,尤其涉及一种服务发现方法和系统。
技术介绍
目前,很多应用和系统都是采用多服务器多实例的方式去组织的,应用与应用之间需要通过网络间的接口进行调用,一般的接口间服务的发现和调用都是通过额外的第三方远程过程调用框架来实现。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:由于在测试执行机调用环境中,服务的调用方式、接口类型和执行机操作系统环境差异很大,测试执行机的环境具有相对临时性,导致现有的服务发现方法难于进行服务的配置管理,不能够对测试执行机的服务发现提供很好的支持,对于一些广义应用,如测试环境中需要用到的数据库实例,没有办法进行管理。同时,在测试环境中,服务间的调用数据量很少、调用次数也很少,且提供服务者与调用者,其自身对服务的接口、方法和数据请求等信息是明确的,在这种场景下,现有的服务发现方法,显得过于冗余,配置复杂,也不够灵活。因此,亟需一种轻量级的,配置简单灵活,且能够适用于复杂服务调用环境的服务发现方法和系统。
技术实现思路
有鉴于此,本专利技术实施例提供一种服务发现方法和系统,能够适用于复杂服务调用环境,并具有轻量级,配置简单灵活的优点。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种服务发现方法,包括:接收部署端发送的服务查询请求;根据所述服务查询请求在注册服务列表中查询相应的服务,并将该服务的服务提供端的地址数据向部署端返回;其中,所述地址数据用于由部署端写入服务调用端的调用配置文件,以使服务调用端可调用该服务。进一步的,所述注册服务列表中维护有服务的服务提供端的ip、端口号、服务标识、是否占用状态和是否可用状态,所述服务提供端的地址数据包括:服务提供端的ip和端口号,所述服务查询请求包括:服务标识,所述根据服务查询请求在注册服务列表中查询相应的服务,并将该服务的服务提供端的地址数据向部署端返回包括:根据所述服务标识查询所述注册服务列表中具有相同服务标识,且处于未占用状态和可用状态的服务,并向部署端返回该服务的服务提供端的ip和端口号。进一步的,本专利技术实施例提供的服务发现方法还包括:接收服务提供端发送的服务注册请求,所述服务注册请求包括:服务提供端的ip、端口号和服务标识;判断所述注册服务列表是否已存在该服务,若是,更新该服务为已占用状态和可用状态,否则,将该服务的服务提供端的ip、端口号和服务标识加入所述注册服务列表,并将该服务设置为未占用状态和可用状态。进一步的,本专利技术实施例提供的服务发现方法还包括:接收服务提供端发送的指定服务的已占用状态变更请求,将该指定服务更新为已占用状态,其中,所述服务提供端在开始执行被调用的该指定服务时,发送该指定服务的已占用状态变更请求;接收服务提供端发送的指定服务的未占用状态变更请求,将该指定服务更新为未占用状态,其中,所述服务提供端在执行完成被调用的该指定服务时,发送该指定服务的未占用状态变更请求;接收服务提供端发送的指定服务的不可用状态变更请求,将该指定服务更新为不可用状态,其中,所述服务提供端在关闭时,发送该指定服务的不可用状态变更请求。进一步的,本专利技术实施例提供的服务发现方法还包括:在设定时间,对所述注册服务列表中的每一个可用状态的服务执行下述步骤:向指定服务的服务提供端发送用于检测该指定服务的地址可用性的检测请求,若返回错误或超时,则将该指定服务更新为不可用状态。进一步的,本专利技术实施例提供的服务发现方法还包括:部署端获取服务调用端的服务标识;发送包括所述服务标识的服务查询请求,并接收根据所述服务标识查询获得的服务提供端的ip和端口号;将所述服务提供端的ip和端口号写入服务调用端的调用配置文件,以使服务调用端可调用所述服务。可选的,所述服务调用端配置有用于将所述服务提供端的ip和端口号写入服务调用端的调用配置文件的脚本文件,该脚本文件名为指定服务标识,部署端通过读取所述脚本文件名获取服务调用端的该指定服务标识;所述将所述服务提供端的ip和端口号写入服务调用端的调用配置文件包括:部署端调用所述脚本文件并传入所述服务提供端的ip和端口号,将所述调用配置文件中的服务提供端地址修改为所述传入的服务提供端的ip和端口号,以使服务调用端可通过该服务提供端地址,调用服务提供端的所述服务。进一步的,本专利技术实施例提供的服务发现方法还包括:服务调用端在启动时,加载所述调用配置文件,利用所述服务提供端的ip和端口号,向服务提供端调用服务。为实现上述目的,根据本专利技术实施例的另一个方面,还提供了一种服务发现系统,包括:部署端、注册端、服务提供端和服务调用端;所述注册端包括:接收模块,用于接收部署端发送的服务查询请求;查询模块,用于根据所述服务查询请求在注册服务列表中查询相应的服务,并将该服务的服务提供端的地址数据向部署端返回;其中,所述地址数据用于由部署端写入服务调用端的调用配置文件,以使服务调用端可调用该服务。进一步的,所述注册服务列表中维护有服务的服务提供端的ip、端口号、服务标识、是否占用状态和是否可用状态,所述服务提供端的地址数据包括:服务提供端的ip和端口号,所述服务查询请求包括:服务标识,所述查询模块进一步用于根据所述服务标识查询所述注册服务列表中具有相同服务标识,且处于未占用状态和可用状态的服务,并向部署端返回该服务的服务提供端的ip和端口号。进一步的,所述接收模块进一步用于接收服务提供端发送的服务注册请求,所述服务注册请求包括:服务提供端的ip、端口号和服务标识;所述查询模块进一步用于判断所述注册服务列表是否已存在该服务,若是,更新该服务为已占用状态和可用状态,否则,将该服务的服务提供端的ip、端口号和服务标识加入所述注册服务列表,并将该服务设置为未占用状态和可用状态。进一步的,所述接收模块进一步用于接收服务提供端发送的指定服务的已占用状态变更请求、未占用状态变更请求以及不可用状态变更请求;所述查询模块进一步用于在所述接收模块接收到所述已占用状态变更请求后,将该指定服务更新为已占用状态,在所述接收模块接收到所述未占用状态变更请求后,将该指定服务更新为未占用状态,在所述接收模块接收到所述不可用状态变更请求后,将该指定服务更新为不可用状态;所述服务提供端在开始执行被调用的该指定服务时,发送该指定服务的已占用状态变更请求,在执行完成被调用的该指定服务时,发送该指定服务的未占用状态变更请求,在关闭时,发送该指定服务的不可用状态变更请求。进一步的,所述查询模块进一步用于在设定时间,对所述注册服务列表中的每一个可用状态的服务执行下述步骤:向指定服务的服务提供端发送用于检测该指定服务的地址可用性的检测请求,若返回错误或超时,则将该指定服务更新为不可用状态。进一步的,部署端用于获取服务调用端的服务标识本文档来自技高网...

【技术保护点】
1.一种服务发现方法,其特征在于,包括:/n接收部署端发送的服务查询请求;/n根据所述服务查询请求在注册服务列表中查询相应的服务,并将该服务的服务提供端的地址数据向部署端返回;/n其中,所述地址数据用于由部署端写入服务调用端的调用配置文件,以使服务调用端可调用该服务。/n

【技术特征摘要】
1.一种服务发现方法,其特征在于,包括:
接收部署端发送的服务查询请求;
根据所述服务查询请求在注册服务列表中查询相应的服务,并将该服务的服务提供端的地址数据向部署端返回;
其中,所述地址数据用于由部署端写入服务调用端的调用配置文件,以使服务调用端可调用该服务。


2.根据权利要求1所述的方法,其特征在于,所述注册服务列表中维护有服务的服务提供端的ip、端口号、服务标识、是否占用状态和是否可用状态,所述服务提供端的地址数据包括:服务提供端的ip和端口号,所述服务查询请求包括:服务标识,
所述根据服务查询请求在注册服务列表中查询相应的服务,并将该服务的服务提供端的地址数据向部署端返回包括:
根据所述服务标识查询所述注册服务列表中具有相同服务标识,且处于未占用状态和可用状态的服务,并向部署端返回该服务的服务提供端的ip和端口号。


3.根据权利要求2所述的方法,其特征在于,还包括:
接收服务提供端发送的服务注册请求,所述服务注册请求包括:服务提供端的ip、端口号和服务标识;
判断所述注册服务列表是否已存在该服务,若是,更新该服务为已占用状态和可用状态,否则,将该服务的服务提供端的ip、端口号和服务标识加入所述注册服务列表,并将该服务设置为未占用状态和可用状态。


4.根据权利要求2所述的方法,其特征在于,还包括:
接收服务提供端发送的指定服务的已占用状态变更请求,将该指定服务更新为已占用状态,其中,所述服务提供端在开始执行被调用的该指定服务时,发送该指定服务的已占用状态变更请求;
接收服务提供端发送的指定服务的未占用状态变更请求,将该指定服务更新为未占用状态,其中,所述服务提供端在执行完成被调用的该指定服务时,发送该指定服务的未占用状态变更请求;
接收服务提供端发送的指定服务的不可用状态变更请求,将该指定服务更新为不可用状态,其中,所述服务提供端在关闭时,发送该指定服务的不可用状态变更请求。


5.根据权利要求2所述的方法,其特征在于,还包括:
在设定时间,对所述注册服务列表中的每一个可用状态的服务执行下述步骤:
向指定服务的服务提供端发送用于检测该指定服务的地址可用性的检测请求,若返回错误或超时,则将该指定服务更新为不可用状态。


6.根据权利要求2所述的方法,其特征在于,还包括:
部署端获取服务调用端的服务标识;
发送包括所述服务标识的服务查询请求,并接收根据所述服务标识查询获得的服务提供端的ip和端口号;
将所述服务提供端的ip和端口号写入服务调用端的调用配置文件,以使服务调用端可调用所述服务。


7.根据权利要求6所述的方法,其特征在于,所述服务调用端配置有用于将所述服务提供端的ip和端口号写入服务调用端的调用配置文件的脚本文件,该脚本文件名为指定服务标识,部署端通过读取所述脚本文件名获取服务调用端的该指定服务标识;
所述将服务提供端的ip和端口号写入服务调用端的调用配置文件包括:
部署端调用所述脚本文件并传入所述服务提供端的ip和端口号,将所述调用配置文件中的服务提供端地址修改为所述传入的服务提供端的ip和端口号,以使服务调用端可通过该服务提供端地址,调用服务提供端的所述服务。


8.根据权利要求1或2所述的方法,其特征在于,还包括:
服务调用端在启动时,加载所述调用配置文件,利用所述服务提供端的ip和端口号,向服务提供端调用服务。


9.一种服务发现系统,其特征在于,包括:部署端、注册端、服务提供端和服务调用端;
所述注册端包括:
接收模块,用于接收部署端发送的服务查询请求;
查询模块,用于根据所述服务查询请求在...

【专利技术属性】
技术研发人员:樊宇邱鹏
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1