[发明专利]一种微服务管理方法、装置及系统在审
申请号: | 202010197134.2 | 申请日: | 2020-03-19 |
公开(公告)号: | CN111427674A | 公开(公告)日: | 2020-07-17 |
发明(设计)人: | 韩珉 | 申请(专利权)人: | 成都云盯科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F11/30 |
代理公司: | 北京细软智谷知识产权代理有限责任公司 11471 | 代理人: | 尚文文 |
地址: | 610000 四川省成都市中国(四川)自由贸易*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 微服 管理 方法 装置 系统 | ||
本申请公开了一种微服务管理方法、装置及系统。该方法中,在接收到服务请求后,从Tomcat线程池中选择第一线程用于响应该服务请求;根据服务请求所属的业务类型从N个controller线程池中确定目标controller线程池,目标controller线程池包括M个线程;第二线程根据服务请求访问目标服务实例,其中第二线程为目标controller线程池中任一线程;若第二线程在的预设超时时间内访问目标服务实例失败,则将目标服务实例标记为不可用,以使每个线程不再访问目标服务实例。该方案能够避免在目标服务实例异常时,系统不断向该目标实例发送请求,而这些重复的请求将会占用大量的时间与资源。
技术领域
本申请涉及计算机技术领域,尤其涉及一种微服务管理方法、装置及系统。
背景技术
单一计算机的处理能力已经不能满足我们的需求,于是采用多台计算机形 成分布式系统为用户提供服务。分布式服务系统在对外提供服务的过程中,能 够分解处理压力,提高性能并提高服务的可用性。
图1为示例性的给出了一种分布式系统访问流程示意图,如图所示,在接 收到用户的服务请求后,确定用于响应该服务请求的controller,确定出的 controller根据服务请求向目标服务实例发送访问请求,以获取用户所需数据。 若controller根据服务请求确定向服务实例B发送访问请求以获取相应数据, 而服务实例B发生异常,无法正常响应controller,故controller将重复项 服务实例B发送请求,将会占用大量资源并影响其他业务处理,在高并发情况 下可能会导致资源耗尽进而导致系统崩溃。
发明内容
本申请实施例提供一种微服务管理方法、装置及系统,用于实现全线程隔 离,有助于避免由于一个服务实例异常导致系统雪崩的情况发生。
第一方面,本申请实施例提供了一种微服务管理方法,包括:
接收用户的服务请求;
从Tomcat线程池中选择第一线程用于响应所述服务请求;
根据所述服务请求所属的业务类型从N个controller线程池中确定目标controller线程池,所述目标controller线程池包括M个线程,N、M为大于 等于1的整数;
第二线程根据所述服务请求访问目标服务实例,所述第二线程为所述目标controller线程池中任一线程;
若所述第二线程在的预设超时时间内访问目标服务实例失败,则将所述目 标服务实例标记为不可用,以使所述N个controller线程池中的每个线程不 再访问所述服务实例。
在一种可能的实现方式中,上述方法还包括:
若所述第二线程程序运行故障,且在所述线程池对应的预设超时时间内未 恢复,则释放所述第二线程。
在一种可能的实现方式中,上述方法还包括:
确定所述第二线程异常原因,向用户输出所述异常原因。
在一种可能的实现方式中,确定所述第二线程异常原因,包括:
根据所述第二线程输出的超文本传输协议HTTP消息中包含的异常原因代 码确定异常原因。
在一种可能的实现方式中,所述预设超时时间,为所述目标controller 线程池对应的超时时间,或者,为所述目标controller线程池与所述目标服 务实例对应的超时时间。
在一种可能的实现方式中,所述M的取值根据CPU的数量、CPU的使用率、 所述预设超时时间以及预设的理想消耗时间确定;或者
所述M的取值根据当前负载大小和线程上限值确定;或者
所述M为预设的常数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都云盯科技有限公司,未经成都云盯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010197134.2/2.html,转载请声明来源钻瓜专利网。