【问题标题】:Connection slow from node to mongodb从节点到 mongodb 的连接速度很慢
【发布时间】:2016-03-03 22:25:15
【问题描述】:

我正在尝试使用 docker,并反映从 nodejs (4.2.3) 容器到 mongodb (3.2) 容器的连接非常缓慢。

我的设置,非常基本,是这样的(docker-compose):

version: '2'

services:
  web:
    build: ./app
    volumes:
      - "./app:/src/app"
    ports:
      - "80:3000"
    links:
      - "db_cache:redis"
      - "db:mongodb"
    command: nodemon -L app/bin/www

  db_cache:
    image: redis
  db:
    image: mongo

我的 s.o.是 OSX 10.10,docker 版本是 1.10.2。

奇怪的是连接到db的时间总是30秒。

有自动延迟吗?

编辑:

如果我将 mongodb 容器的 IP 地址设置为“dns”(mongodb),延迟就会消失!

有什么想法吗?

【问题讨论】:

  • 节点应用程序的连接字符串是什么?是通过 IP 地址还是通过在 DNS 中查找的名称?对于后者,慢速连接解决通常是一个反向查找区域问题,其中没有定义此类条目。在这种情况下,并不是真正的编程问题。
  • url 字符串是mongodb://mongodb:27017/dockertest 阅读文档 docker 这是推荐的方式。

标签: node.js mongodb docker


【解决方案1】:

这并不能完全解决问题,但可以让您恢复正常行为。

这个原因似乎是docker-compose.yml的版本2。

如果我删除版本 2 完全消除了连接 mongodb 时的 30 秒延迟:

web:
  build: ./app
  volumes:
    - "./app:/src/app"
  ports:
    - "80:3000"
  links:
    - "db_cache:redis"
    - "db:mongodb"
  command: nodemon -L app/bin/www

db_cache:
  image: redis
db:
  image: mongo

我打开了一个问题here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2013-11-10
    • 1970-01-01
    • 2021-04-27
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多