elasticsearch elasticsearch和tunnel:我可以使用浏览器(google_chrome)连接到elesticsearch,但不能使用JAVA api,elasticsearch,elasticsearch" /> elasticsearch elasticsearch和tunnel:我可以使用浏览器(google_chrome)连接到elesticsearch,但不能使用JAVA api,elasticsearch,elasticsearch" />

elasticsearch elasticsearch和tunnel:我可以使用浏览器(google_chrome)连接到elesticsearch,但不能使用JAVA api

elasticsearch elasticsearch和tunnel:我可以使用浏览器(google_chrome)连接到elesticsearch,但不能使用JAVA api,elasticsearch,elasticsearch,我的群集它不在同一网络中,并且在我的pc和服务器之间有一个隧道 我有一个错误: org.elasticsearch.client.transport.NoNodeAvailableException:配置的节点均不可用如果使用elasticsearch默认多播机制来发现群集中的节点,则必须使所有群集节点位于同一子网(在版本2.0之前都是如此)。 为了让您的节点发现集群中的其他节点,您可以配置[elasticsearch home]/config/elasticsearch.yaml字段名:dis

我的群集它不在同一网络中,并且在我的pc和服务器之间有一个隧道

我有一个错误:


org.elasticsearch.client.transport.NoNodeAvailableException:配置的节点均不可用

如果使用elasticsearch默认多播机制来发现群集中的节点,则必须使所有群集节点位于同一子网(在版本2.0之前都是如此)。
为了让您的节点发现集群中的其他节点,您可以配置[elasticsearch home]/config/elasticsearch.yaml字段名:discovery.zen.ping.unicast.hosts,如[此处]所述 ():

discovery.zen.ping.unicast.hosts

为了加入集群,节点需要知道集群中至少一些其他节点的主机名或IP地址。此>设置提供此节点将尝试联系的其他节点的初始列表。接受IP地址或主机名

默认值为[“127.0.0.1”,“[::1]”


希望有帮助。

我已尝试在我的环境中重新创建您的配置,并设法使用Elasticsearch(创建了索引)。事情是这样的:

  • 为Elasticsearch 9300和9200端口配置Putty隧道
  • 配置之后,您需要打开SSH连接并确保它已连接
  • 您可以查看SSH事件日志,它是一个关于如何执行此操作的链接
代码如下所示

public class App 
{
    public static void main( String[] args ) throws Exception
    {
        Settings settings = ImmutableSettings.settingsBuilder().
                                              put("cluster.name", "my-cluster").build();
        TransportClient client = new TransportClient(settings)
                                    .addTransportAddress(
                                            new InetSocketTransportAddress(
                                                    "localhost", 9093));
        CreateIndexResponse rs = client.admin().indices().create(new CreateIndexRequest("tunnelingindex")).actionGet();
        System.out.println(rs.isAcknowledged());
        client.close();
    }
}
代码创建一个名为
tunnelingindex
如果它仍然不适用于您,我认为您可能有一个与隧道或弹性搜索无关的问题

希望我能帮上忙。

您必须设置:

transport.publish_host: localhost
详情如下:

谢谢您的回答,但在我作为TransportClient使用的情况下,我使用的代码是:Settings Settings=ImmutableSettings.settingsBuilder().put(“cluster.name”,“fast_elastic”).build();this.client=new-TransportClient(settings).addTransportAddress(new-InetSocketTransportAddress(“localhost,port”);
InetSocketTransportAddress
应使用集群中节点的地址/主机名(而不是
localhost
)。端口号(如果使用默认值)应该是9300,如下所示:
settings=ImmutableSettings.settingsBuilder().put(“cluster.name”,“fast_elastic”).build();this.client=new-TransportClient(settings).addTransportAddress(new-InetSocketTransportAddress(ineAddress.getByName(“隧道服务器名称”),9300));
可以在我的端口转发(putty)中找到更多信息我有:L9300 localhost:9300谢谢你的回复,我认为隧道和firewell不允许我这样做,我将把jar复制到服务器上,并在服务器上执行