本发明涉及计算机,具体涉及分布式服务管理方法、装置、服务器及存储介质。
背景技术:
1、随着业务系统越来越复杂,单体系统会越来臃肿,相关的代码会不停的堆砌在单体架构上面,这时就需要将单体服务进行拆分,拆分后又造成新的问题,如何能够将这些服务进行集中式的管理,对这些服务之间如何能感知到其他服务的存在,因此需要一个服务治理系统综合来对这些服务进行集中式的管理。
2、现有技术中,常用的服务治理框架有eureka、consul、nacos等,但或多或少存在一些问题,例如,对服务发现的时效性较差,一般在几秒钟或几分钟之内才能发现一个服务,或者感知到一个服务的下线;如果通过配置将服务发现的时间缩短,这时就会造成很大的网络瓶颈的开销,由于目前的服务治理系统采用的对等的架构,每台服务器需要承载大量的请求;同时节点之间需要将注册表进行复制,数据的一致性较差,只能达到最终一致性,一般需要几十秒甚至一分钟才能完成数据同步。
技术实现思路
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、通过rest api接口显示应用服务列表,以实现对应用服务列表中各应用服务进行运维。
36、本技术实施例提供的分布式服务管理方法,通过rest api接口显示应用服务列表,以实现对应用服务列表中各应用服务进行运维,从而可以实现应用服务的运维管理,包括服务启停时间、cpu使用率、内存使用率等信息,也可以完成远程对应用服务的启动、停止、重启、日志下载等控制。
37、第二方面,本发明提供了一种分布式服务管理装置,应用于服务器集群,方法包括:
38、第一接收模块,用于接收目标应用服务发送的注册请求;
39、更改模块,用于根据注册请求,将目标应用服务对应的服务状态更改为在线状态;
40、第一更新模块,用于根据目标应用服务对应的服务状态,更新应用服务列表;应用服务列表中包括各个应用服务的服务状态;
41、第二接收模块,用于接收目标应用服务发送的获取应用服务列表消息;
42、第一发送模块,用于将更新后的应用服务列表发送至目标应用服务。
43、本技术实施例提供的分布式服务管理装置,接收目标应用服务发送的注册请求,根据注册请求,将目标应用服务对应的服务状态更改为在线状态,从而保证了目标应用服务对应的服务状态的准确性。根据目标应用服务对应的服务状态,更新应用服务列表,保证了更新后的应用服务列表上各个应用服务的服务状态的准确性。接收目标应用服务发送的获取应用服务列表消息;将更新后的应用服务列表发送至目标应用服务。从而使得目标应用服务可以及时准确地获取各个应用服务的服务状态。上述装置,通过接收目标应用服务发送的注册请求,可以及时发现目标应用服务的上线,因此服务发现的时效性较好,且不会产生很大的网络瓶颈的开销。然后,将目标应用服务对应的服务状态更改为在线状态,保证了目标应用服务对应的服务状态的准确性,且更新应用服务列表,并将更新后的应用服务列表发送至目标应用服务,从而使得目标应用服务可以及时准确与应用服务列表中处于在线状态的应用服务建立连接。此外,上述装置应用于服务器集群,而不是单独的电子设备,保证了分布式服务管理方法的高可用性,避免了由于单独的电子设备出现异常导致分布式服务管理方法失效。
44、第三方面,本发明提供了一种服务器,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的分布式服务管理方法。
45、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的分布式服务管理方法。
1.一种分布式服务管理方法,其特征在于,应用于服务器集群,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标应用服务对应的服务状态,更新应用服务列表之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述应用服务列表中还包括各所述应用服务对应的会话对象,所述接收目标应用服务发送的注册请求之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述再次更新所述应用服务列表之后,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述接收目标应用服务发送的注册请求,包括:
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
8.一种分布式服务管理装置,其特征在于,应用于服务器集群,所述装置包括:
9.一种服务器,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的分布式服务管理方法。
