当前位置: 首页 > 知识库问答 >
问题:

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

毕嘉
2023-03-14

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

我有一个错误:

org.elasticsearch.client.transport.节点可用异常:没有配置的节点可用

共有3个答案

鲁展
2023-03-14

您必须设置:

transport.publish_host: localhost

此处详细信息:Elasticsearch基本客户端连接

秦凯旋
2023-03-14

我已尝试在我的环境中重新创建您的配置,并设法使用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();
    }
}

代码创建了一个名为隧道索引的索引如果它仍然不适用于您,我认为您可能有一个与隧道或弹性搜索无关的问题。

希望我能帮上忙。

萧阳波
2023-03-14

如果您使用elasticsearch默认多播机制来发现集群中的节点,您必须将所有集群节点都位于同一子网上(这在版本2.0之前都是如此)。
为了让您的节点发现集群中的其他节点,您可以配置[elasticsearch home]/config/elasticsearch.yaml字段名:discovery.zen.ping.unicast.hosts[这里](https://www.elastic.co/guide/en/elasticsearch/reference/2.x/modules-network.html):

发现禅。发出砰的声响。单播。主人

为了加入集群,节点需要知道集群中至少一些其他节点的主机名或IP地址。这

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

希望能有帮助。

 类似资料:
  • 我想检查一堆URL是否正常工作。因此,我编写了一些代码(如下所示)来实现这一点。它适用于像谷歌这样的网站。通用域名格式。当我把它应用到我的场景中时,它失败了。 我正在登录虚拟机。从这个虚拟机,我可以在浏览器中打开所需的URL。当我尝试检查是否可以用代码连接到URL时,它失败了。我的代码从文件中获取的URL是正确的,可以在浏览器上运行。因此,排除了URL中的错误。 我的服务器URL如下所示- 如何调

  • 问题内容: 在访问我的存储库之前,我需要先创建一个像这样的文件: 在那之后,我能够在端口访问存储库我的。在创建Jenkins作业时,我可以将SVN网址提供为,并且Jenkins能够访问存储库,但是我仍然必须在服务器上手动创建隧道。有什么方法可以让Jenkins自动化,以便如果对隧道的访问失败,则可以进行隧道化,然后重试? 我在用 问题答案: 您需要像pre-scm-buildstep这样的插件 这

  • 问题内容: 我已经创建了一个简单的 应用程序(使用),带有联系表单,当用户单击“提交”时,我想生成并发送电子邮件。为此,我一直试图像这样使用: …但是我在导入过程中遇到了很多错误。 我是否在这里缺少某些东西,或者根本不是为在浏览器中使用而设计的?如果是这种情况,我应该考虑其他选择吗? 问题答案: node.js用于服务器端JavaScript,它允许您执行浏览器无法完成的许多工作。 除了mailt

  • 问题内容: 在旋转动画中,只能在Chrome浏览器中使用,而不能在Firefox中使用。为什么? 问题答案: 当前的Firefox实施失败,除非时间值具有单位。使用或。 注意:W3C明确允许数字0(不带单位)作为长度值,但对于其他值则没有这种意义。我个人希望这种情况有所改变,但目前Firefox的行为并不正确。

  • 问题内容: 这通常是由XML声明前的空白引起的,但是它可以是任何文本,例如破折号或任何字符。我说这通常是由空白引起的,因为人们认为空白始终是可忽略的,但事实并非如此。 经常发生的另一件事是UTF-8 BOM(字节顺序标记),如果将文档作为字符流传递给XML解析器而不是字节流,则在将XML声明视为空白之前允许我正在编写一个小型Java程序,以获取给定Google搜索字词的结果数量。出于某种原因,在J

  • 问题内容: 我尝试使用rubyseleniumwebdriver运行一些基本的自动化测试。相同的代码在我的家用计算机上可以完美地工作,但是在我的工作计算机上却无法工作,而我的工作计算机位于代理后面(不需要身份验证)。 driver = Selenium :: WebDriver.for:firefox,:profile =>’默认’ 我得到的错误是: 浏览器将使用正确的配置文件打开,但驱动程序变量