[发明专利]分布式编译的方法及系统在审
申请号: | 202210311326.0 | 申请日: | 2022-03-28 |
公开(公告)号: | CN114661470A | 公开(公告)日: | 2022-06-24 |
发明(设计)人: | 温兴森;侯宇轩 | 申请(专利权)人: | 北京奥星贝斯科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F8/41 |
代理公司: | 北京布瑞知识产权代理有限公司 11505 | 代理人: | 张欣 |
地址: | 100020 北京市朝阳区东三*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 编译 方法 系统 | ||
本公开披露了一种分布式编译方法及系统。该方法应用于服务端,该方法包括:接收客户端发送的待编译文件的编译任务,其中,所述编译任务包括第一子任务;获取编译集群中每台执行机的负载信息;根据所述负载信息从所述编译集群中选择用于执行所述第一子任务的执行机。
技术领域
本公开涉及编译技术领域,具体涉及一种分布式编译的方法及系统。
背景技术
编译是指将某种语言的对象文件转化为使机器可识别且执行目标程序的过程。为了加快编译速度,可以采用分布式的编译方法,由多台执行机同时进行一个编译任务的不同子任务。然而,相关技术提供的分布式编译方法无法满足对编译效率的需求。
发明内容
有鉴于此,本公开提供一种分布式编译方法及系统,以提升分布式编译的编译效率。
第一方面,提供一种分布式编译方法,应用于服务端,所述方法包括:接收客户端发送的待编译文件的编译任务,其中,所述编译任务包括第一子任务;获取编译集群中每台执行机的负载信息;根据所述负载信息从所述编译集群中选择用于执行所述第一子任务的执行机。
可选地,在一些实施例中,所述根据所述负载信息从所述编译集群中选择用于执行所述第一子任务的执行机由反向代理完成。
可选地,在一些实施例中,所述方向代理包括nginx。
可选地,在一些实施例中,所述nginx用于调用负载均衡组件,以完成所述根据所述负载信息从所述编译集群中选择用于执行所述第一子任务的执行机。
可选地,在一些实施例中,所述nginx包括多个nginx入口。
可选地,在一些实施例中,所述编译集群包括第一执行机,所述获取编译集群中每台执行机的负载信息包括:上报所述第一执行机的负载信息。
可选地,在一些实施例中,所述上报所述第一执行机的负载信息由上报组件完成。
可选地,在一些实施例中,所述获取编译集群中每台执行机的负载信息还包括:收集和存储所述编译集群中每台执行机上报的所述负载信息。
可选地,在一些实施例中,所述收集和存储所述编译集群中每台执行机上报的所述负载信息由服务发现组件完成。
可选地,在一些实施例中,所述服务发现组件包括以下工具中的至少一种:etcd、redis以及zookeeper。
可选地,在一些实施例中,所述编译集群中的执行机包括容器。
可选地,在一些实施例中,所述根据所述负载信息从所述编译集群中选择用于执行每个子任务的执行机包括:利用所述负载信息得到所述编译集群中每个执行机的权重;根据所述每个执行机的权重选择用于执行所述第一子任务的执行机。
可选地,在一些实施例中,所述负载信息为所述执行机的实时负载信息。
可选地,在一些实施例中,所述客户端为distcc客户端。
第二方面,提供一种分布式编译的系统,应用于服务端,所述系统包括:接收组件,被配置为接收客户端发送的待编译文件的编译任务,其中,所述编译任务包括第一子任务;获取组件,被配置为获取编译集群中每台执行机的负载信息;选择组件,被配置为根据所述负载信息从所述编译集群中选择用于执行所述第一子任务的执行机。
可选地,在一些实施例中,所述选择组件包括反向代理服务器。
可选地,在一些实施例中,所述反向代理服务器包括nginx。
可选地,在一些实施例中,所述选择组件还包括负载均衡组件,所述nginx用于调用所述负载均衡组件,以根据所述负载信息从所述编译集群中选择用于执行所述第一子任务的执行机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奥星贝斯科技有限公司,未经北京奥星贝斯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210311326.0/2.html,转载请声明来源钻瓜专利网。