springboot微服务

SpringCloud服务链路追踪Sleuth(zipkin+k

2018-06-05  本文已影响973人  6087cdb13f7f

demo源码地址

一、前置条件

二、搭建spring cloud应用

        <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-sleuth</artifactId>
       </dependency>

       <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-sleuth-zipkin-stream</artifactId>
       </dependency>

       <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-stream-binder-kafka</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.4.1</version>
       </dependency>
@SpringBootApplication
@EnableZipkinStreamServer
public class ServerZipkinApplication {

   public static void main(String[] args) {
       SpringApplication.run(ServerZipkinApplication.class, args);
   }
}
spring.cloud.stream.kafka.binder.brokers=localhost:9092
spring.cloud.stream.kafka.binder.zkNodes=localhost:2181 

zipkin.storage.type=elasticsearch
zipkin.storage.elasticsearch.hosts=localhost:10200
zipkin.storage.elasticsearch.cluster=zipkin-test
zipkin.storage.elasticsearch.index=zipkin
zipkin.storage.elasticsearch.index-shards=1
zipkin.storage.elasticsearch.index-replicas=1
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
      
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-stream</artifactId>
        </dependency>
@SpringBootApplication
@RestController
/**
 * @author zhengwei
 */
public class ServiceProviderApplication {

    private static final Logger LOG = Logger.getLogger(ServiceProviderApplication.class.getName());

    public static void main(String[] args) {
        SpringApplication.run(ServiceProviderApplication.class, args);
    }

    @RequestMapping("/hi")
    public String hi() {
        LOG.log(Level.INFO, "calling trace service-provider");
        return "hi";
    }

}
 
server.port=8988
spring.application.name=service-provider

spring.sleuth.enabled=true
spring.sleuth.sampler.percentage = 1.0

spring.cloud.stream.kafka.binder.brokers=localhost:9092
spring.cloud.stream.kafka.binder.zkNodes=localhost:2181 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
       
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-stream</artifactId>
        </dependency>
@RestController
public class HelloController {


    @Autowired
    RestTemplate restTemplate;


    @GetMapping("/hi")
    public String hi(@RequestParam String name) {
        return restTemplate.getForObject("http://localhost:8988/hi?name=" + name, String.class);
    }
}
server.port=8765
spring.application.name=service-consumer

spring.sleuth.enabled=true
spring.sleuth.sampler.percentage = 1.0

spring.cloud.stream.kafka.binder.brokers=localhost:9092
spring.cloud.stream.kafka.binder.zkNodes=localhost:2181
@SpringBootApplication
public class ServiceConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServiceConsumerApplication.class, args);
    }

    @Bean
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}

上一篇 下一篇

猜你喜欢

热点阅读