【问题标题】:Openshift can't connect to mongoDB from java code, time outOpenshift 无法从 java 代码连接到 mongoDB,超时
【发布时间】:2015-04-22 09:02:07
【问题描述】:

我在 openshift 上安装了一个 MongoDB 磁带,我无法从 Java 代码连接到它。 IP 地址、端口和凭据取自 openshift 的 RockMongo 卡式磁带。以下方法调用:

public Document insert(String audio, String username) {
    Document document = new Document();
    document.put("username", username);
    document.put("audio", audio);
    document.put("timestamp", new Date());
    collection.insertOne(document);

    return document;
}

还有这个 mongo 客户端配置:

private static MongoClient build() throws UnknownHostException {
    if (mongoClient == null) {
        mongoClient = new MongoClient(
                new MongoClientURI( "mongodb://admin:password@X.X.X.X:27017/dbName"));
    }

        return mongoClient;
    }

public static MongoCollection<Document> getCollection(String collectionName) {
        try {
            build();
        } catch (UnknownHostException e) {

        }
        MongoDatabase db = mongoClient.getDatabase(dbName);

        MongoCollection<Document> collection = db.getCollection(collectionName);
        return collection;
    }

导致 INFO:PrimaryServerSelector 未从集群描述 ClusterDescription 中选择服务器,并且异常:在等待与 PrimaryServerSelector 匹配的服务器时超时 30000 毫秒。

编辑:我也无法通过 mongo 终端应用程序在 openshift 上连接 mongoDB 服务:“异常:连接失败”,所以我认为这是 openshift 配置问题。端口转发和服务本身启动

【问题讨论】:

    标签: java mongodb openshift openshift-cartridge


    【解决方案1】:

    我想你没有正确配置集群(日志中的消息告诉了这个问题),我不确定 OpenShift Cratridge 是如何工作的,但我建议你检查它是否正确启动了 mondo-db。通过 ssh 客户端检查它并运行 mongo-db 命令以检查其状态以及是否已启动。看看这个问题:Java MongoClient cannot connect to primary,我想它让你知道如何检查你有问题的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多