【问题标题】:Connect to Elasticsearch Heroku database连接到 Elasticsearch Heroku 数据库
【发布时间】:2014-05-22 00:03:32
【问题描述】:

我已经在 Heroku 上使用 Bonsai elasticsearch 插件设置了一个初学者帐户。我正在尝试通过 Java 应用程序连接到它,但似乎无法通过传输客户端或弹性搜索文档页面上解释的 NodeBuilder 选项进行连接。

我可以运行以下 CURL 来发布数据:

curl -XPOST http://banyan-7086980.us-east-1.bonsai.io/med/test/hello3 -d '{"title":"Hello world2"}'

我目前的思路是这样的:

    Client client = new TransportClient()
            .addTransportAddress(new InetSocketTransportAddress("http://banyan-7086980.us-east-1.bonsai.io", 9300));

但这不起作用。我错过了什么?

【问题讨论】:

    标签: heroku elasticsearch


    【解决方案1】:

    在 Heroku 上提供托管 Elasticsearch 的大多数服务不支持 HTTP 以外的任何其他传输。从 Java 与 Elasticsearch 交互的规范方式是使用传输客户端或节点客户端,您已尝试使用这两种客户端连接到 HTTP 端点。

    传输和节点客户端使用与 HTTP 不兼容的定制二进制协议。

    此外,默认情况下,此二进制协议不支持您在生产设置中应具备的一些核心功能:身份验证和加密。

    如果您的要求包括在 Heroku 上运行并使用官方 Java 客户端,请查看 Found Elasticsearch on Heroku,它使用自定义传输模块为传输客户端提供支持:https://github.com/foundit/elasticsearch-transport-module

    披露:我是Found的开发人员之一

    【讨论】:

      【解决方案2】:

      Bonsai 是 elasticsearch 的托管服务,如果您使用 heroku 插件,则 ES 和 Heroku 的内部都是抽象的。

      例如,您访问的 URL 位于端口 80 (http),而您尝试连接到 9300(这是默认的 Elasticsearch 端口)。这告诉我,出于安全原因,中间有一个代理层对外界隐藏端口 9200 和 9300。

      怎么办?

      您可以尝试将您的 Java 客户端连接到端口 80。

      Client client = new TransportClient() .addTransportAddress(new InetSocketTransportAddress("http://banyan-7086980.us-east-1.bonsai.io", 80)); 
      

      如果您使用 Heroku 来托管您的应用程序,请关注 Bonsai 插件的 instructions,使用 ENV 变量设置连接。

      如果您只想拥有一个托管实例,您可以使用替代方案,例如 qbox for found

      我更喜欢使用Elasticsearch on Openshift

      【讨论】:

      • Java 传输客户端不是基于 HTTP 的。 Found 通过一个小插件支持传输客户端,该插件增加了对 SSL 和身份验证的支持。更多信息在这里:found.no/documentation/tutorials/using-java-transport(完全披露:我为 Found 工作)
      • 很好的信息-谢谢!我正在寻找最好的托管方式。我正在从heroku运行一个应用程序/实用程序,并在那里看到盆景,最初试图设置它。我会看看 Found 和 OpenShift(我过去使用过 OpenShift,但不知道他们有弹性搜索托管)
      猜你喜欢
      • 2014-03-04
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 2021-06-21
      • 2012-04-07
      • 2012-07-30
      相关资源
      最近更新 更多