2016-07-24 17 views
0

Ich habe eine lokale zwei Instanzen Solr Cloud-Setup mit einer einzigen zoekeeper-Instanz. Ich versuche, mich über SolrJ zu verbinden, um eine Abfrage auszuführen, jedoch hängt mein Code für etwa 2 Minuten beim Ausführen der Abfrage und schlägt dann fehl. Ich habe das grundlegende Beispiel auf dem Solr-Wiki verfolgt. Die logs/Code untenSolrJ hängen bei der Verbindung zu zookee

ist
2016-07-24 13:29:01.932 INFO 83666 --- [qtp699221219-28] org.apache.zookeeper.ZooKeeper   : Initiating client connection, connectString=localhost:2181 sessionTimeout=10000 w[email protected] 
2016-07-24 13:29:01.948 INFO 83666 --- [qtp699221219-28] o.a.solr.common.cloud.ConnectionManager : Waiting for client to connect to ZooKeeper 

2016-07-24 13:29:01.953 INFO 83666 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn   : Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) 

2016-07-24 13:29:01.955 INFO 83666 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn   : Socket connection established to localhost/127.0.0.1:2181, initiating session 

2016-07-24 13:29:01.967 INFO 83666 --- [localhost:2181)] org.apache.zookeeper.ClientCnxn   : Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x1561cdd875e0004, negotiated timeout = 10000 

2016-07-24 13:29:01.972 INFO 83666 --- [back-3-thread-1] o.a.solr.common.cloud.ConnectionManager : Watcher [email protected] name:ZooKeeperConnection Watcher:localhost:2181 got event WatchedEvent state:SyncConnected type:None path:null path:null type:None 

2016-07-24 13:29:01.972 INFO 83666 --- [qtp699221219-28] o.a.solr.common.cloud.ConnectionManager : Client is connected to ZooKeeper 

2016-07-24 13:29:01.973 INFO 83666 --- [qtp699221219-28] o.apache.solr.common.cloud.SolrZkClient : Using default ZkACLProvider 

2016-07-24 13:29:01.974 INFO 83666 --- [qtp699221219-28] o.a.solr.common.cloud.ZkStateReader  : Updating cluster state from ZooKeeper... 



2016-07-24 13:29:01.990 INFO 83666 --- [qtp699221219-28] o.a.solr.common.cloud.ZkStateReader  : Loaded empty cluster properties 

2016-07-24 13:29:01.995 INFO 83666 --- [qtp699221219-28] o.a.solr.common.cloud.ZkStateReader  : Updated live nodes from ZooKeeper... (0) -> (2) 

2016-07-24 13:31:24.653 ERROR 83666 --- [qtp699221219-28] o.a.s.client.solrj.impl.CloudSolrClient : Request to collection foo failed due to (0) java.net.ConnectException: Operation timed out, retry? 0 

und mein Code:

String zkHostString = "localhost:2181"; 
    CloudSolrClient solr = new CloudSolrClient.Builder().withZkHost(zkHostString).build(); 
    solr.setDefaultCollection("foo"); 
    SolrQuery query = new SolrQuery(); 
    query.set("q", "*:*"); 
    QueryResponse response = null; 
    try { 
     response = solr.query(query); 
    } catch (SolrServerException e) { 
     return null; 
    } 
    //Do Something with the results... 
+0

Dies ist Solr 6.1 – Sutty1000

Antwort

1

Urgh, ich bin ein Idiot, der Tierpfleger-Instanz und solr Instanzen sind innerhalb Docker, der Code gepostet oben ist es nicht. Also hat Zookeeper die Solr-URLs mit den Docker-Containern ip zurückgemeldet ... Der Host muss sich über localhost und nicht über den Docker-Container ip verbinden.

ZB: Zookeeper antwortet [http://172.17.0.5:8983/solr/foo_shard1_replica2, http://172.17.0.6:8984/solr/foo_shard1_replica1] aber mein Code aufrufen muss [http://localhost:8983/solr/foo_shard1_replica2, http://localhost:8984/solr/foo_shard1_replica1]