elasticsearch,error-handling,runtime-error,elastic-stack,Java,elasticsearch,Error Handling,Runtime Error,Elastic Stack" /> elasticsearch,error-handling,runtime-error,elastic-stack,Java,elasticsearch,Error Handling,Runtime Error,Elastic Stack" />

eleasticsearch运行时错误-在传输层捕获异常-java.nio.channels.UnsolvedAddressException

eleasticsearch运行时错误-在传输层捕获异常-java.nio.channels.UnsolvedAddressException,java,elasticsearch,error-handling,runtime-error,elastic-stack,Java,elasticsearch,Error Handling,Runtime Error,Elastic Stack,我目前正在构建一个系统,该系统可以获取elasticsearch结果列表,但是我在servicemix中遇到了一个与失败连接相关的反复出现的错误(大约30-60秒)。我该如何阻止这种情况发生? 注意运行ElasticSearch 1.7.1 : 我认为这是导致问题的代码,因为它是连接到我的弹性服务器的代码 查询只返回所有内容 ImmutableSettings仅包含{“name”=>“elk”} InetSocketTransportAddress通常包含localhost:9300(但是我也

我目前正在构建一个系统,该系统可以获取elasticsearch结果列表,但是我在servicemix中遇到了一个与失败连接相关的反复出现的错误(大约30-60秒)。我该如何阻止这种情况发生? 注意运行ElasticSearch 1.7.1 :

我认为这是导致问题的代码,因为它是连接到我的弹性服务器的代码

  • 查询只返回所有内容
  • ImmutableSettings仅包含{“name”=>“elk”}
  • InetSocketTransportAddress通常包含localhost:9300(但是我也测试了错误的地址)

    public static SearchResponse getElkResponse(InetSocketTransportAddress elkHost, HashMap<String, String> settingsMap, QueryBuilder query, int minTimeRange) {
        Settings settings = ImmutableSettings.settingsBuilder()
                .put(settingsMap)
                .build();
    
    
        TransportClient client = new TransportClient(settings).addTransportAddress(elkHost);
        client.admin().indices().prepareRefresh().execute().actionGet(); //not sure why this is need?
        SearchRequestBuilder req = client.prepareSearch()
                .setTimeout(TimeValue.timeValueMinutes(1))
                .addSort("@timestamp", SortOrder.ASC)
                .setQuery(query)
                .setPostFilter(FilterBuilders.rangeFilter("@timestamp").from("now-" + minTimeRange + "m").to("now"))
                .setSize(100);
        SearchResponse res = req.execute().actionGet();
        return res;
    }
    
    publicstaticsearchresponse getElkResponse(InetSocketTransportAddress elkHost,HashMap setingsmap,QueryBuilder查询,int-minTimeRange){
    设置设置=ImmutableSettings.settingsBuilder()
    .put(设置SMAP)
    .build();
    TransportClient=新的TransportClient(设置)。addTransportAddress(elkHost);
    client.admin().index().prepareRefresh().execute().actionGet();//不确定为什么需要这样做?
    SearchRequestBuilder req=client.prepareSearch()
    .setTimeout(TimeValue.timeValueMinutes(1))
    .addSort(“@timestamp”,SortOrder.ASC)
    .setQuery(查询)
    .setPostFilter(FilterBuilders.rangeFilter(@timestamp”)。从(“现在-”+minTimeRange+“m”)到(“现在”))
    .setSize(100);
    SearchResponse res=req.execute().actionGet();
    返回res;
    }
    

您确定ES客户端库jar与群集版本保持同步吗?@Darth_Vader我使用的ES客户端库jar与我的ELK堆栈相关。但是,这并不能解决如何阻止我的客户端不断尝试连接到错误地址的问题。
public static SearchResponse getElkResponse(InetSocketTransportAddress elkHost, HashMap<String, String> settingsMap, QueryBuilder query, int minTimeRange) {
    Settings settings = ImmutableSettings.settingsBuilder()
            .put(settingsMap)
            .build();


    TransportClient client = new TransportClient(settings).addTransportAddress(elkHost);
    client.admin().indices().prepareRefresh().execute().actionGet(); //not sure why this is need?
    SearchRequestBuilder req = client.prepareSearch()
            .setTimeout(TimeValue.timeValueMinutes(1))
            .addSort("@timestamp", SortOrder.ASC)
            .setQuery(query)
            .setPostFilter(FilterBuilders.rangeFilter("@timestamp").from("now-" + minTimeRange + "m").to("now"))
            .setSize(100);
    SearchResponse res = req.execute().actionGet();
    return res;
}