Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services elastic4s与亚马逊Elasticsearch服务_Amazon Web Services_Amazon Ec2_Elastic4s - Fatal编程技术网

Amazon web services elastic4s与亚马逊Elasticsearch服务

Amazon web services elastic4s与亚马逊Elasticsearch服务,amazon-web-services,amazon-ec2,elastic4s,Amazon Web Services,Amazon Ec2,Elastic4s,我在scala项目中使用elastic4s与ElasticSearch通信。为了开发,我启动了一个本地节点,一切正常。对于制作,我想使用Amazon Elasticsearch服务。我已经配置了该服务,并允许通过ec2实例的ip访问它。我可以通过ssh连接到ec2并执行以下操作来验证它是否有效: curl search-blabla-blabla.us-east-1.es.amazonaws.com/_cluster/health 但是,我无法将elastic4s连接到该ES实例。我正在努力:

我在scala项目中使用elastic4s与ElasticSearch通信。为了开发,我启动了一个本地节点,一切正常。对于制作,我想使用Amazon Elasticsearch服务。我已经配置了该服务,并允许通过ec2实例的ip访问它。我可以通过ssh连接到ec2并执行以下操作来验证它是否有效:

curl search-blabla-blabla.us-east-1.es.amazonaws.com/_cluster/health
但是,我无法将elastic4s连接到该ES实例。我正在努力:

ElasticClient.remote("search-blabla-blabla.us-east-1.es.amazonaws.com", 9300)
其结果是:

org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []
阅读文档,elastic4s似乎只能通过TCP[]连接,Amazon Elasticsearch服务不支持TCP[]:该服务支持端口80上的HTTP,但不支持TCP传输


有人能确认elastic4s和Amazon ES真的不能一起工作吗?因为这意味着我必须重新编写所有ES代码。

亚马逊的Elasticsearch服务不支持TCP,只支持HTTP协议。Elastic4s只使用TCP,Elasticsearch Java API也是如此(Elastic4s是Java客户机的包装器)

如果您想使用HTTP,您需要手工编写查询并使用常规HTTP客户端,或者使用支持HTTP协议的Elasticsearch客户端

更新:

从5.2版开始,elastic4s支持HTTP和TCP。这是目前的实验