从节点到mongodb的连接速度很慢
问题描述:
我正在试验docker,并反映了从nodejs(4.2.3)容器到mongodb(3.2)容器的非常慢的连接。从节点到mongodb的连接速度很慢
我的设置,非常简单,就是这个(泊坞窗-撰写):
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和码头版本是1.10.2。
奇怪的是连接数据库的时间总是30秒。
有没有自动延迟?
编辑:
如果我设置的MongoDB容器这一翻译了 “DNS”(mongodb
)的IP地址,延迟消失!
任何想法?
答
这并不能完全解决问题,但它可以让你恢复正常的行为。
原因似乎是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。
节点应用程序的连接字符串是什么?它是通过IP地址还是通过在DNS中查找的名称?对于后者,慢速连接解析通常是没有定义这样的条目的反向查找区域问题。在这种情况下不是一个编程问题。 –
url字符串是'mongodb:// mongodb:27017/dockertest'阅读文档docker这是推荐的方法。 – Lughino