【实现一套爬虫数据抓取平台】[1-1-01] 系统拓扑结构

零、系列目录

写这套文章的时候,不会完全按照目录的顺序一篇一篇写, 大家可以到目录中直接找到对应的章节进行查看。

点我跳转

一、网络拓扑图

在真正开始介绍系统的各个组件之前,我们先来了解一下这套爬虫系统的整体拓扑结构,从物理层面对整套系统有一个感知。
在这里插入图片描述
从上面图片可以看出,整套系统被规划为两套网络环境,一套公网环境,一套内网环境。

实际生产当中,

二、公网环境

公网环境主要用于代理相关服务(代理池维护、代理调度等)。另外,一部分报告文件我们也会放到阿里云的 OSS 上,便于下载。

三、内网环境

内网环境是我们整套系统的核心运行环境,各类服务、组件、中间件、控制器等等内容都在这套内网环境中运行。

实际上,我们的这套内网环境并不在一个真实的物理环境当中,因为各种原因,我们内网分为三个集群,分别部署在全国三个不同的城市(并不是因为什么见不得人的原因,只是因为分别部署在不同的地点可以由不同的人运维管理,分担一下任务)。我们在设计时只要求各个物理机之间网络互通即可。

其中 手机控制机 [MCS]手机真机 这里稍微有一点特殊,因为真机和控制机之间是通过 usb 连接,然后控制机使用 adb 指令控制真机,所以必须要求真机和控制机在物理上处于同一个地点。

四、坑点解析

针对每一篇文章,我都会在最后把这部分描述到的内容做一个 坑点解析,主要就是为了描述一下我在这个过程中遇到了哪些坑,有的跨过去了,有的可能还在坑里,也有的隐藏的坑可能还没有暴露出来,也欢迎大家指出,我们一起讨论。

[坑0] 网络环境

这里有一个坑,跟大家提个醒,整套系统我们在设计时,其实是考虑了异地部署的情况,实际上,只要我们保证内网环境的各个组件之间网络互通就可以,换句话说,都放到公网环境也可以。但最开始处于安全方面的考虑,我们并没有直接把全部服务在公网进行部署。

开发阶段并没有什么问题,因为服务都是局域网,数据量也没有那么大,所有的一切都很流畅。

可是后面异地部署之后出了问题了,首先是网络延迟,并发如何处理,如何维护数据的版本。

关于网络的另外一个问题,如何异地组网?问问你们公司网络工程师吧,听听他的看法。

[坑1] 网络 adb 调试

前面说了,因为手机需要通过 usb 连接在控制机上,所以必须要保证手机和控制机物理上在一起。但其实,如果单纯为了使用 adb 的话,是可以通过网络连接手机使用 adb 的。

我们曾经尝试过使用网络 adb,开发过程很顺利,但经常出现 adb 指令没有响应的情况,解决方式也比较简单,重启 adb-server 就可以了,这对开发来讲没什么问题,但放在生产环境上,风险就大了些。

最后,不得不放弃网络 adb 的方案,采用更稳妥的 线连

[坑2] 云手机

但实际上, 现在有一些提供 云手机 服务的厂商。

云手机,顾名思义,运行在 云端 的手机,各类体验同真机类似。如果你的方案中可以很稳定的使用 网络 adb,那你可以试试云手机,非常棒。

另外,有些云手机厂商也是支持私有云部署的,直接把机器、开发版都寄过来,放在自己局域网里面,安全又方便,也不像真机这样难打理。

爽歪歪。

好了,今天主要和大家分享一下整套系统的网络拓扑结构,未来如果提到了哪个服务只要大家知道在哪个网络环境里就行。

以上。

祝大家变的更强。


版权声明:本文为zhyl8157121原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。