本公开是关于实现无头浏览器集群的方法及装置。该方法包括:为多台服务器中的每台服务器分配对应可访问的IP地址;其中,多台服务器形成一个集群;在每台服务器中安装无头浏览器;在接收到无头浏览器启动指令后,启动预设数量的无头浏览器实例,启动后的无头浏览器实例组成无头浏览器实例池;在检测接收到无头浏览器实例获取指令后,从无头浏览器实例池中获取可用的目标无头浏览器实例;获取目标无头浏览器实例的网络套接字端点地址;将目标无头浏览器实例的网络套接字端点地址发送给客户端。览器实例的网络套接字端点地址发送给客户端。览器实例的网络套接字端点地址发送给客户端。
【技术实现步骤摘要】
实现无头浏览器集群的方法及装置
[0001]本公开涉及计算机
,尤其涉及实现无头浏览器集群的方法及装置。
技术介绍
[0002]无头浏览器是一种没有UI层的浏览器,无法通过键盘或者鼠标操作界面,相比普通浏览器有更高的性能和更少的资源消耗,适合在服务器中运行,通常用于项目UI测试、页面截图、功能完整性测试等,操作无头浏览器是通过底层的控制协议,例如Webdriver、DevTool protocol协议,通过协议的方式调用无头浏览器提供的底层方法,例如打开页面、截图、点击等操作。
[0003]目前的方案是项目在使用无头浏览器时,需在项目应用服务器中部署无头浏览器,然后在应用服务器中启动无头浏览器,提供给应用程序调用。由于运行无头浏览器会占用大量的CPU和内存资源,影响到应用本身性能,导致应用稳定性降低,同时部署无头浏览器时流程非常繁琐,存在安装包超时、配置繁杂,同时不同应用需要重复部署,浪费时间和人力,由于每个应用负载不同,会导致有些应用无头浏览器资源利用率不高、有些应用则资源不够用,导致资源利用率无法最大化。
技术实现思路
[0004]为克服相关技术中存在的问题,本公开实施例提供实现无头浏览器集群的方法及装置。所述技术方案如下:
[0005]根据本公开实施例的第一方面,提供一种实现无头浏览器集群的方法,所述方法包括:
[0006]为多台服务器中的每台所述服务器分配对应可访问的IP地址;其中,多台所述服务器形成一个集群;
[0007]在每台所述服务器中安装无头浏览器;
[0008]在接收到无头浏览器启动指令后,启动预设数量的无头浏览器实例,启动后的所述无头浏览器实例组成无头浏览器实例池;
[0009]在检测接收到无头浏览器实例获取指令后,从所述无头浏览器实例池中获取可用的目标无头浏览器实例;
[0010]获取所述目标无头浏览器实例的网络套接字端点地址;
[0011]将所述目标无头浏览器实例的网络套接字端点地址发送给客户端。
[0012]本公开的实施例提供的技术方案可以包括以下有益效果:本公开提供一种实现无头浏览器集群的方法,包括:为多台服务器中的每台服务器分配对应可访问的IP地址;其中,多台服务器形成一个集群;在每台服务器中安装无头浏览器;在接收到无头浏览器启动指令后,启动预设数量的无头浏览器实例,启动后的无头浏览器实例组成无头浏览器实例池;在检测接收到无头浏览器实例获取指令后,从无头浏览器实例池中获取可用的目标无头浏览器实例;获取目标无头浏览器实例的网络套接字端点地址;将目标无头浏览器实例
的网络套接字端点地址发送给客户端。其中,通过将无头浏览器部署到多台服务器上,组成集群服务,不占用应用服务器CPU和内存资源,不影响应用性能和稳定性,避免了不同应用需要重复部署,浪费时间和人力,同时也能平衡负载,最大化资源利用率;并且应用服务器无需单独安装无头浏览器,省去了安装配置繁琐、速度较慢等问题;每台服务器通过预先启动一定数量无头浏览器实例,组成一个无头浏览器实例池,当应用需获取实例时,通过从无头浏览器实例池中取出一个可用无头浏览器实例立即返回,响应时间快,提升用户体验的流畅性。
[0013]在一个实施例中,所述从所述无头浏览器实例池中获取可用的无头浏览器实例之后,所述方法还包括:
[0014]将所述无头浏览器实例池中包括的所述无头浏览器实例的数量减一;
[0015]将所述目标无头浏览器实例的使用状态变更为已使用。
[0016]在一个实施例中,所述从所述无头浏览器实例池中获取可用的目标无头浏览器实例,包括:
[0017]获取所述集群中的各个所述服务器的状态信息;
[0018]根据所述集群中的各个所述服务器的状态信息确定目标服务器;
[0019]判断所述目标服务器对应的目标无头浏览器实例池是否为空;
[0020]如果所述目标无头浏览器实例池为空,判断是否已超过所述目标服务器的最大负载数量;
[0021]如果未超过所述目标服务器的最大负载数量,启动新的无头浏览器实例并加入至所述目标无头浏览器实例池;
[0022]从所述新启动的无头浏览器实例中选择所述目标无头浏览器实例;
[0023]如果所述目标无头浏览器实例池不为空,从所述目标无头浏览器实例池中已有的所述无头浏览器实例中获取所述目标无头浏览器实例。
[0024]在一个实施例中,所述获取所述目标无头浏览器实例的网络套接字端点地址之后,还包括:
[0025]将所述目标无头浏览器实例的网络套接字端点地址与所述目标无头浏览器实例建立映射关系;
[0026]所述方法还包括:
[0027]接收无头浏览器实例释放指令,所述无头浏览器实例释放指令中包括待释放的目标无头浏览器实例的网络套接字端点地址;
[0028]根据所述目标无头浏览器实例的网络套接字端点地址和所述映射关系查找所述目标无头浏览器实例;
[0029]根据所述释放指令将所述目标无头浏览器实例的使用状态变更为未使用;
[0030]将所述目标无头浏览器实例释放至所述无头浏览器实例池中。
[0031]在一个实施例中,所述方法还包括:
[0032]检测所述无头浏览器实例池中各无头浏览器实例的状态;
[0033]当第一无头浏览器实例的使用次数超过预设次数,和/或,所述第一无头浏览器实例在预设时长内未被使用过,删除所述第一无头浏览器实例。
[0034]根据本公开实施例的第二方面,提供一种实现无头浏览器集群的方法,所述方法
包括:
[0035]发送无头浏览器实例获取指令;
[0036]接收集群发送的目标无头浏览器实例的网络套接字端点地址;
[0037]根据所述目标无头浏览器实例的网络套接字端点地址连接所述目标无头浏览器实例;
[0038]在连接的所述目标无头浏览器实例中进行功能开发。
[0039]本公开提供一种实现无头浏览器集群的方法,方法包括:发送无头浏览器实例获取指令;接收集群发送的目标无头浏览器实例的网络套接字端点地址;根据目标无头浏览器实例的网络套接字端点地址连接目标无头浏览器实例;在连接的目标无头浏览器实例中进行功能开发。其中,可以调用集群中的无头浏览器完成功能开发,而无需在应用服务器中创建无头浏览器,从而不占用应用服务器CPU和内存资源,不影响应用性能和稳定性,避免了不同应用需要重复部署,浪费时间和人力,同时也能平衡负载,最大化资源利用率。并且,应用无需单独安装无头浏览器,省去了安装配置繁琐、速度较慢等问题。
[0040]在一个实施例中,所述在连接的所述目标无头浏览器实例中进行功能开发之后,所述方法还包括:
[0041]在完成所述功能开发之后,向所述集群发送无头浏览器实例释放指令。
[0042]根据本公开实施例的第三方面,提供一种实现无头浏览器集群装置的装置,包括:
[0043]分配模块,用于为多台服务器中的每台所述本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种实现无头浏览器集群的方法,其特征在于,所述方法包括:为多台服务器中的每台所述服务器分配对应可访问的IP地址;其中,多台所述服务器形成一个集群;在每台所述服务器中安装无头浏览器;在接收到无头浏览器启动指令后,启动预设数量的无头浏览器实例,启动后的所述无头浏览器实例组成无头浏览器实例池;在检测接收到无头浏览器实例获取指令后,从所述无头浏览器实例池中获取可用的目标无头浏览器实例;获取所述目标无头浏览器实例的网络套接字端点地址;将所述目标无头浏览器实例的网络套接字端点地址发送给客户端。2.根据权利要求1所述的方法,其特征在于,所述从所述无头浏览器实例池中获取可用的无头浏览器实例之后,所述方法还包括:将所述无头浏览器实例池中包括的所述无头浏览器实例的数量减一;将所述目标无头浏览器实例的使用状态变更为已使用。3.根据权利要求1所述的方法,其特征在于,所述从所述无头浏览器实例池中获取可用的目标无头浏览器实例,包括:获取所述集群中的各个所述服务器的状态信息;根据所述集群中的各个所述服务器的状态信息确定目标服务器;判断所述目标服务器对应的目标无头浏览器实例池是否为空;如果所述目标无头浏览器实例池为空,判断是否已超过所述目标服务器的最大负载数量;如果未超过所述目标服务器的最大负载数量,启动新的无头浏览器实例并加入至所述目标无头浏览器实例池;从所述新启动的无头浏览器实例中选择所述目标无头浏览器实例;如果所述目标无头浏览器实例池不为空,从所述目标无头浏览器实例池中已有的所述无头浏览器实例中获取所述目标无头浏览器实例。4.根据权利要求1所述的方法,其特征在于,所述获取所述目标无头浏览器实例的网络套接字端点地址之后,还包括:将所述目标无头浏览器实例的网络套接字端点地址与所述目标无头浏览器实例建立映射关系;所述方法还包括:接收无头浏览器实例释放指令,所述无头浏览器实例释放指令中包括待释放的目标无头浏览器实例的网络套接字端点地址;根据所述目标无头浏览器实例的网络套接字端点地址和所述映射关系查找所述目标无头浏览器实例;根...
【专利技术属性】
技术研发人员:龙佳,
申请(专利权)人:无线生活杭州信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。