本发明涉及微服务,尤其涉及一种保障注册中心客户端服务调用的方法及装置。
背景技术:
1、微服务架构具有高可用性、可扩展性、灵活性和容错能力等优点,因此在近年来得到越来越广泛的应用。
2、注册中心作为微服务框架中的一个关键组件,主要用于管理和维护微服务实例信息。注册中心服务端是注册中心的服务端组件,其主要功能是提供服务注册和服务发现的功能。注册中心客户端在进行服务调用时,获取被调用服务实例信息有两种模式:(1)连接至注册中心服务端获取被调用服务实例信息;(2)直接读取本地配置文件中定义的服务信息列表获取被调用服务实例信息。注册中心客户端在启动时,需指定获取被调用服务实例信息的方式,并且仅能选择使用以上两种模式中的一种。当注册中心客户端采用上述模式(1)时,存在由于注册中心服务端的异常或者重启导致注册中心客户端服务调用失败的情况。因此,如何提出一种方法,能够提高注册中心客户端的服务调用成功率,成为本领域亟待解决的重要课题。
技术实现思路
1、针对现有技术中的问题,本发明实施例提供一种保障注册中心客户端服务调用的方法,能够至少部分地解决现有技术中存在的问题。
2、第一方面,本发明提出一种保障注册中心客户端服务调用的方法,包括:
3、从注册中心服务端获取服务实例信息;
4、若获知所述服务实例信息为空,则判断在设定时间段内是否与所述注册中心服务端进行重新连接;
5、若在设定时间段内与所述注册中心服务端发生重连,则从第一缓存获取服务实例信息进行服务调用;其中,所述第一缓存中的服务实例信息是预先从本地配置文件读取并存储的。
6、进一步地,本发明提供的保障注册中心客户端服务调用的方法还包括:
7、若获知所述服务实例信息不为空,则根据所述服务实例信息更新第二缓存;
8、根据所述第二缓存更新后的服务实例信息进行服务调用。
9、进一步地,本发明提供的保障注册中心客户端服务调用的方法还包括:
10、若在设定时间段内与所述注册中心服务端未发生重连,则根据所述服务实例信息更新第二缓存;
11、根据所述第二缓存更新后的服务实例信息进行服务调用。
12、进一步地,所述从注册中心服务端获取服务实例信息包括:
13、向所述注册中心服务端发送服务查询请求并接收所述注册中心服务端返回的服务实例信息;或者
14、向所述注册中心服务端发送服务订阅请求并接收所述注册中心服务端推送的服务实例信息。
15、进一步地,本发明提供的保障注册中心客户端服务调用的方法还包括:
16、向注册中心服务端发送建立连接请求以建立与所述注册中心服务端的连接;
17、在设定模式下从本地配置文件读取服务实例信息存入第一缓存;
18、若判断获知发送所述建立连接请求的次数大于预设次数且与所述注册中心服务端建立连接失败,则从所述第一缓存获取服务实例信息进行服务调用。
19、进一步地,本发明提供的保障注册中心客户端服务调用的方法还包括:
20、若与所述注册中心服务端建立连接失败,则建立定时任务重新向所述注册中心服务端发送建立连接请求。
21、进一步地,本发明提供的保障注册中心客户端服务调用的方法还包括:
22、若与所述注册中心服务端建立连接,则向所述注册中心服务端注册本地服务信息,并向所述注册中心服务端发送服务订阅请求。
23、第二方面,本发明提供一种保障注册中心客户端服务调用的装置,包括:
24、获取单元,用于从注册中心服务端获取服务实例信息;
25、第一判断单元,用于若获知所述服务实例信息为空,则判断在设定时间段内是否与所述注册中心服务端进行重新连接;
26、第一调用单元,用于若在设定时间段内与所述注册中心服务端发生重连,则从第一缓存获取服务实例信息进行服务调用;其中,所述第一缓存中的服务实例信息是预先从本地配置文件读取并存储的。
27、进一步地,本发明实施例提供的保障注册中心客户端服务调用的装置还包括:
28、第二判断单元,用于若获知所述服务实例信息不为空,则根据所述服务实例信息更新第二缓存;
29、第二调用单元,用于根据所述第二缓存更新后的服务实例信息进行服务调用。
30、进一步地,本发明实施例提供的保障注册中心客户端服务调用的装置还包括:
31、更新单元,用于若在设定时间段内与所述注册中心服务端未发生重连,则根据所述服务实例信息更新第二缓存;
32、第三调用单元,用于根据所述第二缓存更新后的服务实例信息进行服务调用。
33、进一步地,所述获取单元具体用于:
34、向所述注册中心服务端发送服务查询请求并接收所述注册中心服务端返回的服务实例信息;或者
35、向所述注册中心服务端发送服务订阅请求并接收所述注册中心服务端推送的服务实例信息。
36、进一步地,本发明实施例提供的保障注册中心客户端服务调用的装置还包括:
37、发送单元,用于向注册中心服务端发送建立连接请求以建立与所述注册中心服务端的连接;
38、读取单元,用于在设定模式下从本地配置文件读取服务实例信息存入第一缓存;
39、第四调用单元,用于若判断获知发送所述建立连接请求的次数大于预设次数且与所述注册中心服务端建立连接失败,则从所述第一缓存获取服务实例信息进行服务调用。
40、进一步地,本发明实施例提供的保障注册中心客户端服务调用的装置还包括:
41、建立单元,用于若与所述注册中心服务端建立连接失败,则建立定时任务重新向所述注册中心服务端发送建立连接请求。
42、进一步地,本发明实施例提供的保障注册中心客户端服务调用的装置还包括:
43、订阅单元,用于若与所述注册中心服务端建立连接,则向所述注册中心服务端注册本地服务信息,并向所述注册中心服务端发送服务订阅请求。
44、第三方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述程序以实现上述任一实施例所述的保障注册中心客户端服务调用的方法。
45、第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一实施例所述的保障注册中心客户端服务调用的方法。
46、第五方面,本发明提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任一实施例所述的保障注册中心客户端服务调用的方法。
47、本发明实施例提供的保障注册中心客户端的服务调用方法及装置,从注册中心服务端获取服务实例信息;若获知所述服务实例信息为空,则判断在设定时间段内是否与所述注册中心服务端进行重新连接;若在设定时间段内与所述注册中心服务端发生重连,则从第一缓存获取服务实例信息进行服务调用,在连接至注册中心服务端获取被调用服务实例信息并且所得到的服务实例信息为空的情况下,通过使用缓存的本地配置文件中的服务实例信息,减少了服务调用的失败,提高了服务调用的成功率。