2017-05-08 111 views
1

我正在使用帶有hbase作爲storage.bakend的gremlin服務器。如何在Gremlin服務器中禁用連接池

當我嘗試從我的spark代碼連接到gremlin服務器時,下面的消息被記錄下來,並在某段時間後超時。在主機{ ':8182 IP' ,, hostUri = WS:/ IP:地址= 8182 /的gremlin}

開放連接池具有2

在下面的代碼芯尺寸用於獲取客戶端實例爲每個分區。

private static Cluster cluster; 
private static Client client; 
Logger logger = LoggerFactory.getLogger(GremlinSeverConnection.class); 

public Client getGraph(GraphConf conf) { 

if (client == null) { 
    try { 
     // cluster = Cluster.build(new File(conf)).create(); 
     cluster = Cluster.build(conf.getGraphHost()).port(Integer.parseInt(conf.getGraphPort())) 
       .serializer(getserializer(conf.getGraphSerializer())).create(); 


     client = cluster.connect(); 

     logger.info("connected to graph database"); 
    } finally { 

     //cluster.close(); 
     //client.close(); 
    } 
} 
    return client; 
} 

public Serializers getserializer(String serializer) { 

    return Serializers.GRAPHSON; 
} 

回答

2

您可以在最小和連接池的最大大小設置爲1:

Cluster cluster = Cluster.build().maxConnectionPoolSize(1) 
            minConnectionPoolSize(1).create(); 

這應該強制客戶端使用單個連接。

+0

現在我正在打開連接池上的主機{地址='ip:8182',hostUri = ws:/ ip:8182/gremlin}核心大小爲1,並在一段時間後超時 –

+1

您的問題是關於如何禁用池。與我提供的設置你現在有一個單一的連接,實際上是沒有游泳池。爲什麼你的連接超時是一個不同的故事。也許你只需要增加[這裏]描述的一些超時相關設置(http://tinkerpop.apache.org/docs/current/reference/#_configuration)。 –