A.2 系统
本节用于参考。你可以先跳过本节内容,当想要更好地理解本书系统的构成方式时,可以返回来阅读本节。我们在相关章节中重复了本节中的部分信息。
我们使用Vagrant构建了如下系统(见图A.1)。
图A.1 本书使用的系统
在图A.1中,每个方框表示一台服务器,主机名是其标题的第一部分(dev、Web、es等)。标题的第二部分是其使用的Docker镜像(scrapybook/dev、scrapybook/web、scrapybook/es等)。下面是运行在该服务器上的软件的简要描述。线段表示不同服务器之间的链接,其协议写在线段旁边。Docker所提供的隔离的一部分是不允许超出显式声明的连接。也就是说,比如你想在Spark服务器上使用1234端口监听某些东西,除非你在Vagrant文件中添加相关声明暴露该端口,否则没有人能连接到该端口。请记住这一点,以避免在其他服务器中安装自定义软件时出现问题。
在大部分章节中,我们只会使用到两个机器:dev和web。vagrant ssh可以让我们连接到开发机中。我们可以从这里使用主机名很轻松地访问其他机器(mysql、web等)。我们可以通过执行如ping web的操作来确认能否访问web机器。我们在每章中使用并解释了很多命令。第9章演示了如何推送数据到不同的数据库。第11章使用了3个运行Scrapyd的Docker容器(实际上与开发机相同,以减少下载大小),这些机器的主机名分别是scrapyd1-3。我们还使用了一个主机名为spark的服务器,用于运行Apache Spark以及FTP服务。可以使用vagrant ssh spark连接该服务器,并运行Spark任务。
可以在GitHub顶级目录的Vagrantfile中找到该系统的描述。当输入vagrant up --no-parallel时,系统将开始构建。这将会花费几分钟时间,尤其是在第一次构建时,我们将会在后面的FAQ中了解到更详细的介绍。可以看到,本书代码是挂载在~/book目录当中的。任何时候我们在宿主机修改其中的内容时,变更都会自动传播。这样我们就可以使用文本编辑器或IDE修改文件,并且可以在开发机中快速查看变化了。
最后,一些监听端口被转发到我们的宿主机中,并暴露了相关的服务。比如,你可以使用一个简单的Web浏览器来访问它们。如果你已经在计算机中使用了其中某个端口,那么会产生冲突,导致系统构建无法成功。我们将会在后面的FAQ中告知你如何解决这种情况。表A.1是转发的端口列表。
表A.1
机器和服务 | 从开发机访问的地址 | 从你的(宿主)机访问的地址 |
Web—eb服务器 | http://web:9312 | http://localhost:9312 |
dev—scrapyd | http://dev:6800 | http://localhost:6800 |
scrapyd1—scrapyd | http://scrapyd1:6800 | http://localhost:6801 |
scrapyd2—scrapyd | http://scrapyd2:6800 | http://localhost:6802 |
scrapyd3—scrapyd | http://scrapyd3:6800 | http://localhost:6803 |
es—Elasticsearch API | http://es:9200 | http://localhost:9200 |
spark—FTP | ftp://spark:21 & 30000-9 | ftp://localhost:21 & 30000-9 |
Redis—Redis API | redis://redis:6379 | redis://localhost:6379 |
MySQL - MySQL数据库 | mysql://mysql:3306 | mysql://localhost:3306 |
部分机器的ssh也是暴露的,Vagrant负责为我们重定向并转发这些端口,以避免冲突。我们所需要做的就是运行vagrant ssh <hostname>来访问想要连接的机器。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论