我有一台安装了 Storm on Demand 的专用服务器 (CentOS 7)。我在由 nginx 和 unicorn 提供服务的服务器上运行了一个 rails 应用程序。我在同一台服务器上使用 MariaDB。rails 应用程序每年(有时每月)处理数十万张图像。我在服务器上还有另一个 rails 应用程序,它使用相同的数据库并处理文件上传和处理。
在上传时间较长时,我将上传应用程序移至另一台专用服务器,并更新上传应用程序域的 DNS 设置,以便卸载主应用程序中的带宽、CPU 和内存问题。
主应用程序的 database.yml 是:
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: main_app_production
pool: 5
username: application
password: ****
socket: /var/lib/mysql/mysql.sock
上传应用程序的 database.yml 是:
production:
adapter: mysql2
encoding: utf8
reconnect: false
host: host.domain.com # main server's fully qualified domain name
port: 3306
database: main_app_production
pool: 5
username: application
password: ****
上传服务器上主机和端口设置的原因是,无论应用程序是在主服务器上运行还是在临时大容量服务器上运行,都与应用程序无关。
我的问题是,当上传应用程序与主应用程序在同一台服务器上运行时(因此与数据库在同一台服务器上),它是否使用 Storm 的有限带宽通过域和端口进行连接,而不是通过默认的本地主机?我该如何测试呢?
答案1
您可以通过拔掉网线进行测试。如果在链接断开的情况下您仍然可以 ping 服务器的 IP 地址,则在与该 IP 地址通信时不会使用您付费的带宽。
据我所知,您没有理由使用带宽,除非是为了解析您使用的 ip 地址和主机名未在 中定义的情况/etc/hosts
。任何配置的 ip 地址都是本地目的地,不会通过线路。
可能感兴趣的是宿主模型Linux 的。
答案2
正如其他人所指出的,如果目标 IP 是本地的,发往该 IP 的流量将永远不会离开主机。需要记住的一件事是,您可以设置 DNS A 记录以指向本地主机 (127.0.0.1)。只要解析该主机名的唯一内容位于同一个框中,那么就没有理由不将其设置为解析为本地主机。