[selenium-grid]多机分布式环境下的selenium集群

举报
~大鱼~ 发表于 2021/05/27 16:34:04 2021/05/27
【摘要】 源起 还是爬虫里面的某个场景需要重度使用selenium场景 ,所以需要起这样一个集群 对比 单机 docker docker-compose 分布式集群 我们在使用selenium 的时候,我们一般就使用以上的环境和模式,单机怎么操作呢,下载相应的webdriver 单机 对于小型的使用环境,比如单线程操作,我们直接下载好相应版本的driver ,直接安装 sele...

源起

还是爬虫里面的某个场景需要重度使用selenium场景 ,所以需要起这样一个集群
《[selenium-grid]多机分布式环境下的selenium集群》

对比

  • 单机
  • docker
  • docker-compose
  • 分布式集群

我们在使用selenium 的时候,我们一般就使用以上的环境和模式,单机怎么操作呢,下载相应的webdriver

单机

对于小型的使用环境,比如单线程操作,我们直接下载好相应版本的driver ,直接安装 selenium,然后使用就可以了

Docker

关于docker的安装,以前已经介绍过了,这里就不加以重复了,安装好docker之后,我们选择实际selenium官方提供的镜像
保证安装好docker-compose ,这里就直接使用docker-compose.yml 文件起一个实例

docker-compose.yml

然后使用在docker-compose.yml所在的目录 ,使用命令sudo docker-compose up -d

这个时候就起了一个实例,打开浏览器http://127.0.0.1:5555/ 就可以看到

脚本如何使用呢,也满简单

如果你要开很多个也可以,前台挂个nginx然后启用多个之后集群

docker-compose 单机集群

docker-compose.yml

使用命令sudo docker-compose up -d
浏览器打开 http://127.0.0.1:4444/就可以看到我们的hub界面了,脚本就如上,只需要端口改成4444

问题

不论是docker模式,还是以上的docker-compose 单机集群模式,问题都很明显的,就是当这台机器出现问题的时候,整个渲染环境就挂掉了,没办法做到很合理的横向拓展,比如单机资源不够用了(渲染是很消耗内存的),就只能停机加内存,加完然后再起,那有没有方法直接将hub节点和node节点拆分开呢,当然有,虽然官方没有提供,不过在仔细的查看源代码之后,得到了解决方法

多机集群

hub节点假设在A机上,ip地址为:10.10.2.38

hub的主文件配置

node节点假设B机上,ip地址为:
node的docker-compose 配置10.10.2.52

这里有一个坑,就是你的 -port 必须和外部暴露的端口一致,源代码的处理是直接将这个port 处理成起机器的端口,==>源码所在<==

总结

这次我们主要是对selenium环境的各种分析和处理,并且处理分布式和多机的实践,基本上已经够你很多实用环境了,这些都是昨天在和今天查阅了大量的资料总结得来的

文章来源: brucedone.com,作者:大鱼的鱼塘,版权归原作者所有,如需转载,请联系作者。

原文链接:brucedone.com/archives/1021

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。