我在端口8983上的Ubuntu系统上运行Solr 7.1。
每个核心包含8个核心和大约2亿个文档。我正在运行一个java代码,它同时对不同的内核进行solr查询。根据我的要求,它需要在一秒钟内调用10000个查询,并将持续3-4个小时。当我运行此代码时,它会在几秒钟后收到以下错误:
org.apache.solr.client.solrj.SolrServerException:服务器被拒绝 连接位于:http://
10.*.*.*:8983
/ solr / solr_core
。引起:org.apache.http.conn.HttpHostConnectException:连接到
10.*.*.*:8983
[/10.*.*.*:8983
]失败:无法分配请求的地址 (连接失败)
。
造成:java.net.ConnectException:无法分配请求 地址(连接失败)
我已经探索过,如果我减少每秒查询次数或在间隔后给出一些延迟,它会在一定程度上解决我的问题。但是在运行此程序1小时后我仍然收到此错误。 因为我不是Solr的专家,所以我不知道它正在发生的任何限制。
答案 0 :(得分:0)
可能你正在耗尽本地端口,如果你非常积极地打开新连接,AFAIK将由于保持活动配置。
我建议你看看SolrJ HttpClientUtil,这个类让你创建一个定义你自己的PoolingClientConnectionManager配置的客户端。