我已经使用AWS elasticsearch service(非EC2)设置了一个elasticsearch服务器。它给了我一个端点https://xxx-xxxxxxxx.us-west-2.es.amazonaws.com/,如果我点击这个端点(注意,没有指定的端口),我可以得到预期的如何使用弹性java客户端与aws elasticsearch服务进行交谈?
{
status: 200,
name: "Mastermind",
cluster_name: "xxxx",
version: {
number: "1.5.2",
build_hash: "yyyyyy",
build_timestamp: "2015-04-27T09:21:06Z",
build_snapshot: false,
lucene_version: "4.10.4"
},
tagline: "You Know, for Search"
}
的问题是如何得到这个通过elasticsearch Java客户端没有端口号?示例代码我得到的是
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300));
如果我使用此代码,只需更换为“host1”与我的终点,我会得到“NoNodeAvailableException”
PS: Java客户端版本我使用是2.0.0。
编辑 我终于决定与第三方REST客户端Jest一起去。但Brooks在下面回答的问题也非常有帮助 - AWS对http使用端口80,对https使用端口443。我想我的阻挡者是防火墙。
EDIT2 的AWS服务ES文件明确地说:
该服务支持HTTP端口80上,但不支持TCP传输。
如果我的回答满意你的问题,我想,如果你将其标记为正确的欣赏它。 – Brooks
@Brooks,我仍然无法使用传输客户端连接到AWS弹性服务,最后决定使用Jest。但你的回答仍然帮助我了解问题所在。我编辑了我的问题接受了您的答案。如果你找到一个完整的解决方案,请编辑你的答案,以便其他人可以受益。 – Edmond
嗨,埃德蒙,你仍然无法连接?您的访问政策是否到位? – Brooks