1、在apisix中添加es的upstream
2、配置route
2.1、填写URIs和desc
2.2、配置proxy-rewrite
3、配置springboot的yml文件
elasticsearch:
host: 111.111.111.111
port: -1
clusterName: testCluster
其中,host为对外放开的ip,port为-1时,即忽略端口,cluterName为es中配置的clusterName。
4、maven引用
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<!-- <version>7.6.2</version>-->
<version>6.5.4</version>
</dependency>
<!-- Java High Level REST Client -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<!-- <version>7.6.2</version>-->
<version>6.5.4</version>
</dependency>
版本根据es的版本来确定。
5、配置es的config
@Value("${elasticsearch.host}")
private String ipAddress;
@Value("${elasticsearch.port}")
private int port;
@Value("${elasticsearch.clusterName}")
private String clusterName;
@Bean
public RestHighLevelClient highLevelClient() {
RestClientBuilder builder = RestClient.builder(new HttpHost(ipAddress, port, "http")).setPathPrefix("esServer");
RestHighLevelClient client = new RestHighLevelClient(builder);
return client;
}
其中重要的是pathPrefix,这个值为route配置中URIs的/esServer/*的路径。
即可使用RestHighLevelClient的接口查询es。