AWS Managed ElasticSearch上的弹性传输客户端

时间:2015-10-22 16:44:50

标签: java amazon-web-services elasticsearch amazon-elasticsearch

我正在尝试将AWS Managed ElasticSearch用于我的项目。

我已经关注https://aws.amazon.com/blogs/aws/new-amazon-elasticsearch-service/,我可以启动一个实例并且成功了。但是我无法使用elasticsearch transport client从我的服务连接到同一个实例。

我知道传输客户端应该连接到9300端口,而该端口我无法通过aws控制台打开。

以下是我用来连接的代码,它可以成功连接到我在9300端口上的ec2机器上的弹性搜索设置。

ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder();
                    settings.put("cluster.name", "my-cluster-name")
                            .put("client.transport.nodes_sampler_interval", "15s")
                            .put("client.transport.ping_timeout", "15s")
                            .put("client.transport.sniff", true)
                            .put("client.transport.ignore_cluster_name", false).build();
                    client = new TransportClient(settings)
                        .addTransportAddress(
                            new InetSocketTransportAddress(
                                        env.getProperty("elastic-host-url-provided-by-aws",80)
                            ));

我得到了例外

  

org.elasticsearch.client.transport.NoNodeAvailableException:无   配置的节点可用:[] at   org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:305)     在   org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:200)     在   org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106)     在   org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:98)

我怀疑这个错误是因为我通过HTTP端口连接TransportClient。但我不知道aws托管弹性搜索实例的TCP端口是什么。我搜索了aws文件,但我找不到任何文件。如果有人使用TransportClient连接Amazon ES,请告诉我。

  

注意:我已经验证了我的弹性搜索java jar版本   使用与服务器相同。从我的系统我能够   无任何问题地访问Kibana和ES HTTP PORTS。

2 个答案:

答案 0 :(得分:16)

AWS相关论坛link

Here是AWS ElasticSearch服务的限制:

  

TCP传输服务支持端口80上的HTTP,但不支持   支持TCP传输。

答案 1 :(得分:1)

可以找到有关缺少对AWS Elasticsearch 5.x域的TCP传输支持的文档部分here

  

TCP传输

     

该服务支持端口80上的HTTP,但不支持TCP传输。