访问服务的方法、装置、电子设备和计算机可读介质与流程
未命名
08-15
阅读:151
评论:0
1.本发明涉及微服务技术领域,尤其涉及一种访问服务的方法、装置、电子设备和计算机可读介质。
背景技术:
2.nacos或者zookeeper作为注册中心,在分布式系统中被广泛应用。为服务消费者提供寻址功能。如图1所示,步骤1:服务消费者发送地址查询请求给注册中心;步骤2:注册中心将查询到的服务提供者的地址信息返回给服务消费者;步骤3:服务消费者根据接收到的服务提供者的地址信息,向服务提供者发送业务请求,从而访问服务。
3.在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
4.注册中心在节点逐个升级、重启的过程中会出现短暂的失效,无法提供服务,也就是说服务消费者从注册中心获得的地址信息为空,无法获得有效地址信息,从而导致消费服务者无法访问服务。
技术实现要素:
5.有鉴于此,本发明实施例提供一种访问服务的方法、装置、电子设备和计算机可读介质,以解决由于注册中心在节点逐个升级、重启的过程中无法提供服务而导致请求失败的技术问题。
6.为实现上述目的,根据本发明实施例的一个方面,提供了一种访问服务的方法,应用于服务消费者,包括:
7.向注册中心发送地址查询请求,所述地址查询请求携带服务标识;
8.接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息;
9.响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;
10.响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
11.可选地,响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息,包括:
12.响应于所述服务标识对应的最新地址信息不为空,比较已存储在本地的所述服务标识对应的地址信息与所述服务标识对应的最新地址信息是否一致;
13.若是,则忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;
14.若否,则将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
15.可选地,响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应
的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,还包括:
16.累计所述服务标识对应的最新地址信息持续为空的次数,响应于所述服务标识对应的最新地址信息持续为空的次数大于等于次数阈值,将已存储在本地的所述服务标识对应的地址信息删除。
17.可选地,响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,还包括:
18.累计所述服务标识对应的最新地址信息持续为空的时长,响应于所述服务标识对应的最新地址信息持续为空的时长大于等于时长阈值,将已存储在本地的所述服务标识对应的地址信息删除。
19.可选地,向注册中心发送地址查询请求之前,还包括:
20.向注册中心发送服务查询请求,所述服务查询请求携带服务关键字;
21.接收所述注册中心返回的所述服务关键字对应的服务名称和服务标识;
22.将所述服务关键字对应的服务标识中的一个或者多个配置为所述地址查询请求中携带的服务标识。
23.可选地,还包括:
24.确定需要访问的目标服务,从本地获取所述目标服务对应的地址信息;
25.根据所述目标服务对应的地址信息和业务信息组装成业务请求,从而访问所述目标服务。
26.可选地,所述注册中心为nacos集群或者zookeeper集群。
27.另外,根据本发明实施例的另一个方面,提供了一种访问服务的装置,设置于服务消费者,包括:
28.查询模块,用于向注册中心发送地址查询请求,所述地址查询请求携带服务标识;
29.接收模块,用于接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息;
30.存储模块,用于响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
31.可选地,所述存储模块还用于:
32.响应于所述服务标识对应的最新地址信息不为空,比较已存储在本地的所述服务标识对应的地址信息与所述服务标识对应的最新地址信息是否一致;
33.若是,则忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;
34.若否,则将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
35.可选地,所述存储模块还用于:
36.响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,累计所述服务标识对应的最新地址信息持续为空的次数,响应于所述服务标识对应的最新地址信息持续为空的次
数大于等于次数阈值,将已存储在本地的所述服务标识对应的地址信息删除。
37.可选地,所述存储模块还用于:
38.响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,累计所述服务标识对应的最新地址信息持续为空的时长,响应于所述服务标识对应的最新地址信息持续为空的时长大于等于时长阈值,将已存储在本地的所述服务标识对应的地址信息删除。
39.可选地,所述查询模块还用于:
40.向注册中心发送服务查询请求,所述服务查询请求携带服务关键字;
41.接收所述注册中心返回的所述服务关键字对应的服务名称和服务标识;
42.将所述服务关键字对应的服务标识中的一个或者多个配置为所述地址查询请求中携带的服务标识。
43.可选地,还包括访问模块,用于:
44.确定需要访问的目标服务,从本地获取所述目标服务对应的地址信息;
45.根据所述目标服务对应的地址信息和业务信息组装成业务请求,从而访问所述目标服务。
46.可选地,所述注册中心为nacos集群或者zookeeper集群。
47.根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
48.一个或多个处理器;
49.存储装置,用于存储一个或多个程序,
50.当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
51.根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
52.根据本发明实施例的另一个方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
53.上述发明中的一个实施例具有如下优点或有益效果:因为采用响应于服务标识对应的最新地址信息为空,忽略服务标识对应的最新地址信息,保留已存储在本地的服务标识对应的地址信息,响应于服务标识对应的最新地址信息不为空,将已存储在本地的服务标识对应的地址信息更新为服务标识对应的最新地址信息的技术手段,所以克服了现有技术中由于注册中心在节点逐个升级、重启的过程中无法提供服务而导致请求失败的技术问题。本发明实施例通过定时任务定时从注册中心查询最新的地址信息,如果地址信息为空,则保留已存储在本地的地址信息,从而避免了由于注册中心无法提供寻址服务而导致请求失败的问题。
54.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
55.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
56.图1是现有技术中服务消费者访问服务的系统架构示意图;
57.图2是根据本发明实施例的访问服务的方法的流程图;
58.图3是根据本发明一个可参考实施例的访问服务的方法的流程图;
59.图4是根据本发明另一个可参考实施例的访问服务的方法的流程图;
60.图5是根据本发明再一个可参考实施例的访问服务的方法的流程图;
61.图6是根据本发明实施例的访问服务的装置的示意图;
62.图7是本发明实施例可以应用于其中的示例性系统架构图;
63.图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
64.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
65.需要说明的是,本发明的技术方案中,所涉及的用户个人信息的采集、分析、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法且合理的用途,不在这些合法使用等方面之外共享、泄露或出售,并且接受监管部门的监督管理。应当对用户个人信息采取必要措施,以防止对此类个人信息数据的非法访问,确保有权访问个人信息数据的人员遵守相关法律法规的规定,确保用户个人信息安全。一旦不再需要这些用户个人信息数据,应当通过限制甚至禁止数据收集和/或删除数据的方式将风险降至最低。
66.当适用时,包括在某些相关应用程序中,通过对数据去标识来保护用户隐私,例如在适用时通过移除特定标识符(例如,账号、姓名、性别、出生日期等)、控制所存储数据的量或特异性、控制数据如何被存储、和/或其他方法去标识。
67.图2是根据本发明实施例的访问服务的方法的流程图。作为本发明的一个实施例,如图2所示,所述访问服务的方法应用于服务消费者,可以包括:
68.步骤201,向注册中心发送地址查询请求,所述地址查询请求携带服务标识。
69.服务消费者通过定时任务,定时执行步骤201-步骤205,即服务消费者定时地到注册中心查询服务提供者提供的服务的地址信息,将从注册中心查询到的地址信息存储到服务消费者本地,当服务消费者需要访问某个服务时,直接从本地获取该服务的地址信息。
70.注册中心是微服务架构中的通信中心,服务消费者可以从中获取服务提供方的地址、状态等信息。可选地,所述注册中心为nacos集群或者zookeeper集群。
71.在该步骤中,服务消费者向注册中心发送地址查询请求,所述地址查询请求可以携带一个或者多个服务标识。
72.步骤202,接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息。
73.注册中心接收到服务消费者发送过来的地址查询请求后,对其进行解析,根据解
析出的一个或者多个服务标识,匹配出各个服务标识对应的最新地址信息,并将每个服务标识对应的最新地址信息返回至服务消费者。服务消费者接收注册中心返回的每个服务标识对应的最新地址信息。
74.需要说明的是,服务提供者对外提供服务之前,需要在注册中心注册服务的最新地址信息,注册中心为注册的服务分配服务标识,并存储各个服务标识与其对应的最新地址信息。
75.步骤203,所述服务标识对应的最新地址信息是否为空;若是,则执行步骤204;若否,则执行步骤205。
76.服务消费者逐一判断接收到的各个服务标识对应的最新地址信息是否为空。
77.步骤204,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息。
78.如果服务标识对应的最新地址信息为空,说明注册中心暂时无法提供寻址服务,则忽略该服务标识对应的最新地址信息,保留已存储在服务消费者本地的该服务标识对应的地址信息。
79.步骤205,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
80.如果服务标识对应的最新地址信息不为空,则将已经存储在服务消费者本地的该服务标识对应的地址信息更新为该服务标识对应的最新地址信息。说明注册中心可以提供寻址服务,那么就用最新获得的地址信息覆盖服务消费者本地已经存储的地址信息。
81.需要说明的是,已经存储在服务消费者本地的服务标识对应的地址信息与从注册中心查询到的服务标识对应的最新地址信息可能一样,也可能不一样。
82.可选地,步骤205可以包括:比较已存储在本地的所述服务标识对应的地址信息与所述服务标识对应的最新地址信息是否一致;若是,则忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;若否,则将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。为了提高处理速度,比较已经存储在服务消费者本地的服务标识对应的地址信息与从注册中心查询到的服务标识对应的最新地址信息是否一致,如果一致,则忽略服务标识对应的最新地址信息,保留已存储在服务消费者本地的该服务标识对应的地址信息;如果不一致,则将已存储在服务消费者本地的服务标识对应的地址信息更新为从注册中心获取的服务标识对应的最新地址信息,以保证将最新的地址信息存储至服务消费者本地内存中。
83.根据上面所述的各种实施例,可以看出本发明实施例通过响应于服务标识对应的最新地址信息为空,忽略服务标识对应的最新地址信息,保留已存储在本地的服务标识对应的地址信息,响应于服务标识对应的最新地址信息不为空,将已存储在本地的服务标识对应的地址信息更新为服务标识对应的最新地址信息的技术手段,解决了现有技术中由于注册中心在节点逐个升级、重启的过程中无法提供服务而导致请求失败的技术问题。本发明实施例通过定时任务定时从注册中心查询最新的地址信息,如果地址信息为空,则保留已存储在本地的地址信息,从而避免了由于注册中心无法提供寻址服务而导致请求失败的问题。
84.图3是根据本发明一个可参考实施例的访问服务的方法的流程图。作为本发明的
又一个实施例,如图3所示,所述访问服务的方法应用于服务消费者,可以包括:
85.步骤301,向注册中心发送地址查询请求,所述地址查询请求携带服务标识。
86.步骤302,接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息。
87.步骤303,所述服务标识对应的最新地址信息是否为空;若是,则执行步骤304;若否,则执行步骤305。
88.步骤304,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息。
89.步骤305,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
90.步骤306,累计所述服务标识对应的最新地址信息持续为空的次数。
91.步骤307,判断所述服务标识对应的最新地址信息持续为空的次数是否大于等于次数阈值;若是,则执行步骤308;若否,则结束。
92.步骤308,将已存储在本地的所述服务标识对应的地址信息删除。
93.如果服务消费者接收到的最新地址信息为空,则记录下最新地址信息为空的次数为1,如果服务消费者接收到的最新地址信息再次为空,则记录下最新地址信息为空的次数为2,以此类推,服务消费者累计同一个服务标识对应的最新地址信息持续为空的次数。如果该服务标识对应的最新地址信息持续为空的次数大于等于次数阈值(比如3次、5次或者8次等),说明该服务提供者的实例已经下线,那么服务消费者将已存储在本地的该服务标识对应的地址信息删除。
94.另外,在本发明一个可参考实施例中访问服务的方法的具体实施内容,在上面所述访问服务的方法中已经详细说明了,故在此重复内容不再说明。
95.图4是根据本发明另一个可参考实施例的访问服务的方法的流程图。作为本发明的另一个实施例,如图4所示,所述访问服务的方法应用于服务消费者,可以包括:
96.步骤401,向注册中心发送地址查询请求,所述地址查询请求携带服务标识。
97.步骤402,接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息。
98.步骤403,所述服务标识对应的最新地址信息是否为空;若是,则执行步骤404;若否,则执行步骤405。
99.步骤404,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息。
100.步骤405,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
101.步骤406,累计所述服务标识对应的最新地址信息持续为空的时长。
102.步骤407,判断所述服务标识对应的最新地址信息持续为空的时长大于等于时长阈值;若是,则执行步骤408;若否,则结束。
103.步骤408,将已存储在本地的所述服务标识对应的地址信息删除。
104.如果服务消费者接收到的最新地址信息为空,则开始记录最新地址信息为空的时长,如果服务消费者接收到的最新地址信息再次为空,则累计服务标识对应的最新地址信
息持续为空的时长,以此类推,服务消费者累计同一个服务标识对应的最新地址信息持续为空的时长。如果该服务标识对应的最新地址信息持续为空的时长大于等于时长阈值(比如3秒、5秒或者8秒等),说明该服务提供者的实例已经下线,那么服务消费者将已存储在本地的该服务标识对应的地址信息删除。
105.另外,在本发明另一个可参考实施例中访问服务的方法的具体实施内容,在上面所述访问服务的方法中已经详细说明了,故在此重复内容不再说明。
106.图5是根据本发明再一个可参考实施例的访问服务的方法的流程图。作为本发明的再一个实施例,如图5所示,所述访问服务的方法应用于服务消费者,可以包括:
107.步骤501,向注册中心发送服务查询请求,所述服务查询请求携带服务关键字。
108.服务消费者向注册中心发送服务查询请求,服务查询请求携带一个或者多个服务关键字。每个服务提供者都会将服务注册在注册中心,注册中心为各个服务分配服务标识,并存储各个服务标识、服务名称及其对应的地址信息。
109.步骤502,接收所述注册中心返回的所述服务关键字对应的服务名称和服务标识。
110.注册中心接收到服务消费者发送的服务查询请求后,根据服务查询请求携带的服务关键字匹配出命中的服务,将命中的服务的服务名称和服务标识返回给服务消费者。服务消费者接收注册中心返回的所述服务关键字对应的服务名称和服务标识。
111.步骤503,将所述服务关键字对应的服务标识中的一个或者多个配置为所述地址查询请求中携带的服务标识。
112.根据业务需要,将注册中心返回的服务标识中的一个或者多个配置为地址查询请求中携带的服务标识。
113.接着,通过定时任务定时执行寻址任务,即执行步骤504-步骤508,地址查询请求中携带的服务标识即为配置的一个或者多个服务标识。
114.步骤504,向注册中心发送地址查询请求,所述地址查询请求携带服务标识。
115.步骤505,接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息。
116.步骤506,所述服务标识对应的最新地址信息是否为空;若是,则执行步骤507;若否,则执行步骤508。
117.步骤507,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息。
118.步骤508,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
119.步骤509,确定需要访问的目标服务,从本地获取所述目标服务对应的地址信息。
120.步骤510,根据所述目标服务对应的地址信息和业务信息组装成业务请求,从而访问所述目标服务。
121.当服务消费者需要访问目标服务时,从本地获取目标服务对应的地址信息,然后根据地址信息和业务信息组装成业务请求,将该业务请求发送至目标服务,从而访问目标服务。
122.另外,在本发明再一个可参考实施例中访问服务的方法的具体实施内容,在上面所述访问服务的方法中已经详细说明了,故在此重复内容不再说明。
123.图6是根据本发明实施例的访问服务的装置的示意图。如图5所示,所述访问服务的装置600设置于服务消费者,包括查询模块601、接收模块602和存储模块603;其中,查询模块601用于向注册中心发送地址查询请求,所述地址查询请求携带服务标识;接收模块602用于接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息;存储模块603用于响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
124.可选地,所述存储模块603还用于:
125.响应于所述服务标识对应的最新地址信息不为空,比较已存储在本地的所述服务标识对应的地址信息与所述服务标识对应的最新地址信息是否一致;
126.若是,则忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;
127.若否,则将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
128.可选地,所述存储模块603还用于:
129.响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,累计所述服务标识对应的最新地址信息持续为空的次数,响应于所述服务标识对应的最新地址信息持续为空的次数大于等于次数阈值,将已存储在本地的所述服务标识对应的地址信息删除。
130.可选地,所述存储模块603还用于:
131.响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,累计所述服务标识对应的最新地址信息持续为空的时长,响应于所述服务标识对应的最新地址信息持续为空的时长大于等于时长阈值,将已存储在本地的所述服务标识对应的地址信息删除。
132.可选地,所述查询模块601还用于:
133.向注册中心发送服务查询请求,所述服务查询请求携带服务关键字;
134.接收所述注册中心返回的所述服务关键字对应的服务名称和服务标识;
135.将所述服务关键字对应的服务标识中的一个或者多个配置为所述地址查询请求中携带的服务标识。
136.可选地,还包括访问模块,用于:
137.确定需要访问的目标服务,从本地获取所述目标服务对应的地址信息;
138.根据所述目标服务对应的地址信息和业务信息组装成业务请求,从而访问所述目标服务。
139.可选地,所述注册中心为nacos集群或者zookeeper集群。
140.需要说明的是,在本发明所述访问服务的装置的具体实施内容,在上面所述访问服务的方法中已经详细说明了,故在此重复内容不再说明。
141.图7示出了可以应用本发明实施例的访问服务的方法或访问服务的装置的示例性
系统架构700。
142.如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
143.用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
144.终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
145.服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
146.需要说明的是,本发明实施例所提供的访问服务的方法一般由终端设备701、702、703执行,相应地,所述访问服务的装置一般设置在终端设备701、702、703中。
147.应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
148.下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
149.如图8所示,计算机系统800包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram 803中,还存储有系统800操作所需的各种程序和数据。cpu 801、rom 802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
150.以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
151.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(cpu)801执行时,执行本发明的系统中限定的上述功能。
152.需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计
算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
153.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
154.描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括查询模块、接收模块和存储模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
155.作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:向注册中心发送地址查询请求,所述地址查询请求携带服务标识;接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息;响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。
156.作为另一方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
157.根据本发明实施例的技术方案,因为采用响应于服务标识对应的最新地址信息为空,忽略服务标识对应的最新地址信息,保留已存储在本地的服务标识对应的地址信息,响应于服务标识对应的最新地址信息不为空,将已存储在本地的服务标识对应的地址信息更
新为服务标识对应的最新地址信息的技术手段,所以克服了现有技术中由于注册中心在节点逐个升级、重启的过程中无法提供服务而导致请求失败的技术问题。本发明实施例通过定时任务定时从注册中心查询最新的地址信息,如果地址信息为空,则保留已存储在本地的地址信息,从而避免了由于注册中心无法提供寻址服务而导致请求失败的问题。
158.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
技术特征:
1.一种访问服务的方法,其特征在于,应用于服务消费者,包括:向注册中心发送地址查询请求,所述地址查询请求携带服务标识;接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息;响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。2.根据权利要求1所述的方法,其特征在于,响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息,包括:响应于所述服务标识对应的最新地址信息不为空,比较已存储在本地的所述服务标识对应的地址信息与所述服务标识对应的最新地址信息是否一致;若是,则忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;若否,则将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。3.根据权利要求1所述的方法,其特征在于,响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,还包括:累计所述服务标识对应的最新地址信息持续为空的次数,响应于所述服务标识对应的最新地址信息持续为空的次数大于等于次数阈值,将已存储在本地的所述服务标识对应的地址信息删除。4.根据权利要求1所述的方法,其特征在于,响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,还包括:累计所述服务标识对应的最新地址信息持续为空的时长,响应于所述服务标识对应的最新地址信息持续为空的时长大于等于时长阈值,将已存储在本地的所述服务标识对应的地址信息删除。5.根据权利要求1所述的方法,其特征在于,向注册中心发送地址查询请求之前,还包括:向注册中心发送服务查询请求,所述服务查询请求携带服务关键字;接收所述注册中心返回的所述服务关键字对应的服务名称和服务标识;将所述服务关键字对应的服务标识中的一个或者多个配置为所述地址查询请求中携带的服务标识。6.根据权利要求1所述的方法,其特征在于,还包括:确定需要访问的目标服务,从本地获取所述目标服务对应的地址信息;根据所述目标服务对应的地址信息和业务信息组装成业务请求,从而访问所述目标服务。
7.根据权利要求1所述的方法,其特征在于,所述注册中心为nacos集群或者zookeeper集群。8.一种访问服务的装置,其特征在于,设置于服务消费者,包括:查询模块,用于向注册中心发送地址查询请求,所述地址查询请求携带服务标识;接收模块,用于接收所述注册中心返回的所述服务标识对应的最新地址信息;其中,所述注册中心用于注册各个服务并存储有各个服务标识对应的最新地址信息;存储模块,用于响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。9.根据权利要求8所述的装置,其特征在于,所述存储模块还用于:响应于所述服务标识对应的最新地址信息不为空,比较已存储在本地的所述服务标识对应的地址信息与所述服务标识对应的最新地址信息是否一致;若是,则忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;若否,则将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。10.根据权利要求8所述的装置,其特征在于,所述存储模块还用于:响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,累计所述服务标识对应的最新地址信息持续为空的次数,响应于所述服务标识对应的最新地址信息持续为空的次数大于等于次数阈值,将已存储在本地的所述服务标识对应的地址信息删除。11.根据权利要求8所述的装置,其特征在于,所述存储模块还用于:响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息之后,累计所述服务标识对应的最新地址信息持续为空的时长,响应于所述服务标识对应的最新地址信息持续为空的时长大于等于时长阈值,将已存储在本地的所述服务标识对应的地址信息删除。12.根据权利要求8所述的装置,其特征在于,所述查询模块还用于:向注册中心发送服务查询请求,所述服务查询请求携带服务关键字;接收所述注册中心返回的所述服务关键字对应的服务名称和服务标识;将所述服务关键字对应的服务标识中的一个或者多个配置为所述地址查询请求中携带的服务标识。13.根据权利要求8所述的装置,其特征在于,还包括访问模块,用于:确定需要访问的目标服务,从本地获取所述目标服务对应的地址信息;根据所述目标服务对应的地址信息和业务信息组装成业务请求,从而访问所述目标服务。14.根据权利要求8所述的装置,其特征在于,所述注册中心为nacos集群或者zookeeper集群。15.一种电子设备,其特征在于,包括:
一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现如权利要求1-7中任一所述的方法。16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。17.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
技术总结
本发明公开了访问服务的方法、装置、电子设备和计算机可读介质,涉及微服务技术领域。该方法的一具体实施方式包括:向注册中心发送地址查询请求,所述地址查询请求携带服务标识;接收所述注册中心返回的所述服务标识对应的最新地址信息;响应于所述服务标识对应的最新地址信息为空,忽略所述服务标识对应的最新地址信息,保留已存储在本地的所述服务标识对应的地址信息;响应于所述服务标识对应的最新地址信息不为空,将已存储在本地的所述服务标识对应的地址信息更新为所述服务标识对应的最新地址信息。该实施方式能够解决由于注册中心在节点逐个升级、重启的过程中无法提供服务而导致请求失败的技术问题。而导致请求失败的技术问题。而导致请求失败的技术问题。
技术研发人员:许鹏翔
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.06.09
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
