我通过9200端口使用ElasticSearch REST API。
官方Java库客户端连接到9300端口。
端口API有什么区别?
我想将记录事件传递到ElasticSearch并查看Bulk API:
最让我烦恼的是,通过PreBuiltTransportClient
的Java API带来了很多依赖,如果将Client插入应用程序(为什么我需要在应用程序中使用org.apache.lucene
jar?),这将是完全不必要的开销。 / p>
是否有任何性能差异,它们是否提供相同级别的可靠性?
答案 0 :(得分:3)
java客户端为弹性创建传输节点客户端,并通过传输模块连接到集群(不是作为完整功能节点),而不是在9200端口上整齐地工作。因此它回退到端口9300以连接到ES的传输层。
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300))
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));
Elastic侦听端口9300处的所有transport请求,甚至是其他节点。