我在我的 scala 项目中使用 elastic4s 与 ElasticSearch 进行通信。为了开发,我启动了一个本地节点,一切正常。对于生产,我想使用 Amazon Elasticsearch Service。我已经配置了该服务并允许通过我的 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 [ 1 ] 连接,而 Amazon Elasticsearch Service 不支持 TCP[ 2 ]:该服务支持端口 80 上的 HTTP,但不支持 TCP 传输。
有人可以确认 elastic4s 和 Amazon ES 真的不能一起工作吗?因为那意味着我必须重新编写我所有的 ES 代码。