我正在用spring-boot写一个微服务。 db是mongodb。该服务在我的本地环境中完美运行。但是,在将其部署到云代工厂之后,它不起作用。原因是连接mongodb超时。弹簧引导应用程序如何确定它是否在云代工厂上运行?
我认为根本原因是应用程序不知道它在云上运行。因为它仍然连接127.0.0.1:27017,但不是重定向的端口。
它怎么知道它在云上运行?谢谢!
编辑:
有绑定到服务MongoDB实例。而当我检查了环境信息,我得到了以下信息:
{
"VCAP_SERVICES": {
"mongodb": [
{
"credentials": {
"hostname": "10.11.241.1",
"ports": {
"27017/tcp": "43417",
"28017/tcp": "43135"
},
"port": "43417",
"username": "xxxxxxxxxx",
"password": "xxxxxxxxxx",
"dbname": "gwkp7glhw9tq9cwp",
"uri": "xxxxxxxxxx"
},
"syslog_drain_url": null,
"volume_mounts": [],
"label": "mongodb",
"provider": null,
"plan": "v3.0-container",
"name": "mongodb-business-configuration",
"tags": [
"mongodb",
"document"
]
}
]
}
}
{
"VCAP_APPLICATION": {
"cf_api": "xxxxxxxxxx",
"limits": {
"fds": 16384,
"mem": 1024,
"disk": 1024
},
"application_name": "mock-service",
"application_uris": [
"xxxxxxxxxx"
],
"name": "mock-service",
"space_name": "xxxxxxxxxx",
"space_id": "xxxxxxxxxx",
"uris": [
"xxxxxxxxxx"
],
"users": null,
"application_id": "xxxxxxxxxx",
"version": "c7569d23-f3ee-49d0-9875-8e595ee76522",
"application_version": "c7569d23-f3ee-49d0-9875-8e595ee76522"
}
}
从我的理解,我觉得我的春天启动的服务应该尝试连接端口43417,但不是27017,对不对?谢谢!
因为你实际上并没有一个['mongod'](https://docs.mongodb.com/manual/reference/program/mongod/ )服务与应用程序相同的实例?如何指向一个远程MongoDB来代替。 https://www.google.com/search?q=mongodb+hosting+providers –
这里有一个“生态系统”中的官方文档部分:[VMware Cloud Foundry](https://docs.mongodb.com/生态系统/平台/ vmware-cloud-foundry /) –
谢谢你们,实际上有一个mongodb实例绑定到服务。我也编辑这个问题来宣布它。 –