Mongodb spring启动应用程序如何确定它是否在CloudFoundry上运行?

Mongodb spring启动应用程序如何确定它是否在CloudFoundry上运行?,mongodb,spring-boot,Mongodb,Spring Boot,我正在用spring boot编写一个微服务。数据库是mongodb。这项服务在我当地的环境中运行得非常好。但在我将其部署到云铸造厂之后,它就不起作用了。原因是连接mongodb超时 我认为根本原因是应用程序不知道它正在云上运行。因为它仍然连接127.0.0.1:27017,但不是重定向端口 它怎么知道它在云上运行?谢谢大家! 编辑: 有一个mongodb实例绑定到该服务。当我查看环境信息时,我得到了以下信息: { "VCAP_SERVICES": { "mongodb"

我正在用spring boot编写一个微服务。数据库是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"
    }
}

根据我的理解,我认为我的spring引导服务应该尝试连接端口43417,而不是27017,对吗?谢谢大家!

最后我发现原因是我没有指定配置文件。在my manifest.yml中添加以下代码后,它可以工作:

env:
  SPRING_PROFILES_ACTIVE: cloud

因为在应用程序的同一实例上实际上没有服务?不如改为指向远程MongoDB。实际上,“生态系统”中有一个关于这一点的官方文档部分:谢谢你们,实际上还有一个绑定到该服务的mongodb实例。我还编辑了这个问题来声明它。如果你真的阅读了那里的文档,“实例”仍然不在同一台机器上。您需要指向它所在的地址,而不是“localhost”。你显然不是在读它,因为你只是把实际上只是“我”的东西叫做“两者”。阅读文档。它不是
localhost
,而是另一个IP地址。\n您正在使用Spring Cloud Foundry连接器吗?那听起来不对,你应该,不必那样做。您使用的是什么cloudfoundry发行版?