返回介绍

A.2 系统

发布于 2024-01-30 22:48:37 字数 2820 浏览 0 评论 0 收藏 0

本节用于参考。你可以先跳过本节内容,当想要更好地理解本书系统的构成方式时,可以返回来阅读本节。我们在相关章节中重复了本节中的部分信息。

我们使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文