Elasticsearch(ES)有兩種連接方式:TransportClient、RestClient。TransportClient通過TCP方式訪問ES(只支持java),RestClient方式通過http API 訪問ES(沒有語言限制)。
Elasticsearch計划在Elasticsearch 7.0中棄用TransportClient,在8.0中完全刪除它。故在實際使用過程中建議您使用Java高級REST client。不管是transport client還是rest client都是線程安全的,都應該使用單例。
TransportClient:
TransportClient 是ElasticSearch(java)客戶端封裝對象,使用transport遠程連接到Elasticsearch集群,默認用的TCP端口是9300,該transport node並不會加入集群,而是簡單的向ElasticSearch集群上的節點發送請求。
Rest Client:
Java Low Level REST Client:elasticsearch client 低級別客戶端。它允許通過http請求與Elasticsearch集群進行通信。API本身不負責數據的編碼解碼,由用戶去編碼解碼。它與所有的ElasticSearch版本兼容。
Java High Level REST Client:Elasticsearch client官方高級客戶端。基於低級客戶端,它定義的API,已經對請求與響應數據包進行編碼解碼。