apisix配置es的route并实现springboot中对的es访问

55 阅读1分钟

1、在apisix中添加es的upstream

image.png

2、配置route
2.1、填写URIs和desc

image.png

2.2、配置proxy-rewrite

image.png

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。