2017-05-08 2 views
0

初めてSpringを使用していて、RESTful APIを開発しようとしています。なぜ私はmongoデータベースへの接続を4つまで開くのですか?

[ restartedMain] org.mongodb.driver.cluster    : Cluster created with settings {hosts=[127.0.0.1:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} 
[127.0.0.1:27017] org.mongodb.driver.connection   : Opened connection [connectionId{localValue:1, serverValue:1}] to 127.0.0.1:27017 
[127.0.0.1:27017] org.mongodb.driver.cluster    : Monitor thread successfully connected to server with description ServerDescription{address=127.0.0.1:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 4, 4]}, minWireVersion=0, maxWireVersion=5, maxDocumentSize=16777216, roundTripTimeNanos=1907739} 
[ restartedMain] org.mongodb.driver.cluster    : Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500} 
[localhost:27017] org.mongodb.driver.connection   : Opened connection [connectionId{localValue:2, serverValue:2}] to localhost:27017 
[localhost:27017] org.mongodb.driver.cluster    : Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[3, 4, 4]}, minWireVersion=0, maxWireVersion=5, maxDocumentSize=16777216, roundTripTimeNanos=1145793} 
[ restartedMain] org.mongodb.driver.connection   : Opened connection [connectionId{localValue:3, serverValue:3}] to localhost:27017 
[ restartedMain] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup 
[ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 
[ restartedMain] org.mongodb.driver.connection : Opened connection [connectionId{localValue:4, serverValue:4}] to 127.0.0.1:27017 

マイモンゴ構成:

@Configuration 
@EnableMongoRepositories(basePackages="com.api.repo") 
class MongoConfig extends AbstractMongoConfiguration { 

    @Value("${spring.data.mongodb.host}") 
    private String url; 
    @Value("${spring.data.mongodb.port}") 
    private int port; 
    @Value("${spring.data.mongodb.database}") 
    private String db; 

    @Override 
    protected String getDatabaseName() { 
     return db; 
    } 

    @Override 
    public Mongo mongo() throws Exception { 

//  return new Fongo("meh").getMongo(); 
     return new MongoClient(url, port); 
    } 

    @Override 
    protected Collection<String> getMappingBasePackages() { 
     return Arrays.asList("com.api"); 
    } 
+0

私はMongoClientをsingleton'private static finalとして設定した場合、Mongo mongo = new MongoClient(url、port); '例外が発生します。 – anat0lius

答えて

0

は、あなたのmongo andminに取得し、デシベルを実行MongoRepositorySpring Data MongoDBを使用して、私は4開かれた接続まで登場している理由は、私のログのかを知りたいでしょう。 serverStatus()。connections開いている接続が表示されます。 クローズ接続ではないようです... This page in stackoverflow

+0

アプリケーションが実行中です:' {"現在":5、 "利用可能":51195、 totalCreated ":9}' アプリケーションが実行されていません: '{"現在 ":1、"利用可能 ":51199、" totalCreated ":9}'。私はシングルトンとしてMongoClientを作成する必要があると思います – anat0lius

0

私はmongoOptionsで試しています。

@Bean 
    public MongoClientOptions mongoOptions() { 
     return MongoClientOptions.builder().threadsAllowedToBlockForConnectionMultiplier(2).maxConnectionIdleTime(1).connectionsPerHost(1).minConnectionsPerHost(1).socketTimeout(2000).build(); 
    } 

この設定で再生すると、接続を管理できます。

spring.data.mongodb.port=27017 
spring.data.mongodb.database=your_database 

あなたが例えば「mongobee」を使用している場合、それは新しい接続をオープンすることを考えている、これは私がapplication.properties別に持っている唯一の構成ですので、私の場合は、春ブーツと春のデータを使用していますあなたはこの設定から管理できません。

+0

それでも私は4つの接続を取得しています。しかし、私はこれらのつながりの源泉が何かを知りたいと思います。 – anat0lius

関連する問題