Elasticsearch-6.7.0系列(七)SpringCloud连接ES集群,使用ES用户名密码

pom.xml代码:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.joyce</groupId>
    <artifactId>joyce-component-zipkin</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.20.RELEASE</version>
        <relativePath />
    </parent>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- Spring Cloud -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>

        <!-- Spring Boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- zipkin -->
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-server</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-autoconfigure-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.java</groupId>
            <artifactId>zipkin-autoconfigure-storage-elasticsearch-http</artifactId>
            <version>2.8.4</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
        </dependency>
        <!-- zipkin -->

        <!-- 测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <!-- <version>3.8.1</version> -->
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

 

application.properties配置文件代码:

server.port=8740
spring.application.name=joyce-component-zipkin
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka,http://localhost:8762/eureka,http://localhost:8763/eureka
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.instance.instance-id=${spring.application.name}:${server.port}
eureka.instance.prefer-ip-address=true

#接受zipkin追踪,追踪数据会传导给turbine实时监控(如果存在)
spring.zipkin.enabled=true
spring.sleuth.feign.enabled=true
spring.sleuth.hystrix.strategy.enabled=true
spring.sleuth.sampler.percentage=1.0
spring.zipkin.base-url=http://joyce-component-zipkin

##############################  ES单点连接    ######################
#zipkin.storage.type=elasticsearch
#zipkin.storage.elasticsearch.hosts=192.168.10.140:9200
#zipkin.storage.elasticsearch.max-requests=100
#zipkin.storage.elasticsearch.index=zipkin
#zipkin.storage.elasticsearch.index-shards=0
#zipkin.storage.elasticsearch.index-replicas=0

##############################  ES集群连接,使用用户名和密码    ######################
zipkin.storage.type=elasticsearch                            //使用elasticsearch存储zipkin追踪数据
zipkin.storage.elasticsearch.cluster=joyce-elasticsearch     //集群的cluster name
zipkin.storage.elasticsearch.hosts=192.168.10.110:9200,192.168.10.120:9200,192.168.10.130:9200
zipkin.storage.elasticsearch.max-requests=100
zipkin.storage.elasticsearch.timeout=1000         
zipkin.storage.elasticsearch.index=zipkin         //存储zipkin数据时,ES的数据索引以zipkin为前缀,示例:zipkin-2019-06-09
zipkin.storage.elasticsearch.date-separator=-     //ES索引数据的日期分隔符,默认为“-”
zipkin.storage.elasticsearch.index-shards=6      //集群的分片个数
zipkin.storage.elasticsearch.index-replicas=0    //集群的备(从)个数
zipkin.storage.elasticsearch.username=elastic    //用户名
zipkin.storage.elasticsearch.password=1234567    //密码

zipkin.storage.type前缀注入到zipkin-autoconfigure-storage-elasticsearch-http-2.8.4.jar包里的TracingZipkinElasticsearchHttpStorageAutoConfiguration类。

@ConditionalOnBean(Tracing.class)
@ConditionalOnProperty(name = "zipkin.storage.type", havingValue = "elasticsearch")
@Configuration
class TracingZipkinElasticsearchHttpStorageAutoConfiguration {

zipkin.storage.elasticsearch前缀注入到zipkin-autoconfigure-storage-elasticsearch-http-2.8.4.jar包里的ZipkinElasticsearchHttpStorageProperties类。

@ConfigurationProperties("zipkin.storage.elasticsearch")
class ZipkinElasticsearchHttpStorageProperties implements Serializable {

SpringCloud启动类代码:

package com.joyce.zipkin;

import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import zipkin.server.internal.EnableZipkinServer;

@SpringBootApplication
@EnableZipkinServer
@EnableHystrix
@EnableHystrixDashboard
@EnableEurekaClient
public class ComponentZipkinApplication {
    private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(ComponentZipkinApplication.class);
    
    public static void main(String[] args) {
        SpringApplication.run(ComponentZipkinApplication.class, args); 
    }
}

 

posted on 2019-06-09 13:12  梦幻朵颜  阅读(6986)  评论(0编辑  收藏  举报