`
wiselyman
  • 浏览: 2090086 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82062
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130597
社区版块
存档分类
最新评论

使用Spring Cloud Sleuth、Zipkin、Kafka、Elasticsearch实现分布式追踪

 
阅读更多

本例使用Spring Cloud Sleuth来实现分布式追踪,利用Kafka实现异步的分布式追踪,使用Elasticsearch存储追踪数据,使用Zipkin查看追踪内容。

1.前置条件

使用docker compose安装KafkaElasticsearch

Kafka安装

version: '2'

services:
  zk:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"


  kafka:
    image: wurstmeister/kafka:0.10.1.1
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka
      KAFKA_ZOOKEEPER_CONNECT: zk:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Elasticsearch安装

version: '2'

services:
  elasticsearch:
    image: registry.cn-hangzhou.aliyuncs.com/wiselyman/es553:5.5.3
    restart: on-failure
    ports:
      - '9200:9200'
      - '9300:9300'

registry.cn-hangzhou.aliyuncs.com/wiselyman/es553:5.5.3docker.elastic.co/elasticsearch/elasticsearch:5.5.3阿里云加速镜像

2.搭建Zipkin Server

依赖

<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>

3.开启Zipkin支持

@SpringBootApplication
@EnableZipkinStreamServer
public class ZipkinServerApplication {

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

配置kafka

spring.cloud.stream.kafka.binder.zkNodes: 192.168.1.222
spring.cloud.stream.kafka.binder.brokers: 192.168.1.222

配置ES存储

zipkin:
  storage:
    type: elasticsearch
    elasticsearch:
      hosts: http://192.168.1.222:9200
      username: elastic
      password: changeme
      cluster: elasticsearch
      index: zipkin
      index-shards: 1
      index-replicas: 1

4.示例调用服务from-service

依赖

<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>

配置

spring.application.name: from-service
server.port: 8081

spring.sleuth.sampler.percentage: 1.0

spring.cloud.stream.kafka.binder.zkNodes: 192.168.1.222
spring.cloud.stream.kafka.binder.brokers: 192.168.1.222

调用控制器

@RestController
public class HelloController {
    @Autowired
    RestTemplate restTemplate;
    @GetMapping("/sync")
    public String sync(@RequestParam String param){
        return restTemplate.getForObject("http://localhost:8082/toSync?param=" + param,String.class);
    }
}

5.示例被调用服务to-service

依赖

<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>

配置

spring.application.name: to-service
server.port: 8082

spring.sleuth.sampler.percentage: 1.0

spring.cloud.stream.kafka.binder.zkNodes: 192.168.1.222
spring.cloud.stream.kafka.binder.brokers: 192.168.1.222

演示

  • 启动zipkin-server,访问zipkin页面http://localhost:8080/zipkin/:

  • 启动from-service,to-service,访问http://localhost:8081/sync?param=sss,这时查看zipkin页面:

源码地址:http://www.wisely.top/2018/03/02/spring_cloud_sleuth-zipkin-kafka-es/

0
0
分享到:
评论

相关推荐

    zipkin-demo:关于如何使用Spring Cloud Sleuth + Kafka + Zipkin + ElasticSearch的演示

    A demo about how to use Spring Cloud Sleuth + Kafka + Zipkin + ElasticSearch 模块介绍 frontend 提供rest接口,处理用户请求,然后转发给backend处理。 backend 提供rest接口,处理fontend的请求。 zipkin-...

    (spring-cloud-sleuth-stream+mybatis+rabbit)+(kafka+elasticsearch+zipkin)

    1. **Spring Cloud Sleuth Stream**: Spring Cloud Sleuth 是一个分布式跟踪解决方案,它集成在 Spring Cloud 生态系统中,提供了对 Zipkin 和 Brave 等追踪系统的支持。Sleuth Stream 模块则利用 Spring Cloud ...

    springcloud集成调用跟踪.docx

    Spring Cloud Sleuth 就是这样一个工具,它与 Zipkin、Kafka 和 Elasticsearch 结合,提供了强大的分布式追踪解决方案。下面将详细介绍这个集成方案。 首先,Spring Cloud Sleuth 是 Spring Cloud 的一个子项目,它...

    编程不良人的SpringCloud笔记和资料,全套

    Sleuth是一个分布式追踪解决方案,它为服务之间的调用提供日志跟踪,可与Zipkin或ELK(Elasticsearch、Logstash、Kibana)等工具配合,帮助分析请求在系统中的流转过程。 11. **Spring Cloud Stream消息驱动** ...

    《深入理解Spring Cloud与微服务构建》word版本

    8. **Spring Cloud Sleuth链路追踪**:Sleuth提供了一种分布式追踪解决方案,它可以与Zipkin、ELK Stack(Elasticsearch, Logstash, Kibana)等日志分析工具结合,便于监控和排查微服务间的调用问题。 9. **Spring ...

    SpringCloud基本框架+完整示例工程.rar

    8. **SpringCloud Sleuth**:日志追踪解决方案,它与Zipkin、ELK(Elasticsearch, Logstash, Kibana)等集成,可以帮助开发者分析服务间的调用链路,排查问题。 9. **SpringCloud Stream**:提供了一种声明式的消息...

    基于SpringCloud的分布式跨境电商系统的设计与实现-源码

    6. **分布式追踪**:SpringCloud Sleuth配合Zipkin或ELK(Elasticsearch, Logstash, Kibana)可以实现微服务间的调用链追踪,帮助开发者定位问题,优化性能。 7. **数据存储与缓存**:在跨境电商系统中,可能涉及到...

    springcloud学习文档.zip

    10. **Spring Cloud Sleuth**: 提供分布式跟踪解决方案,支持Zipkin、ELK(Elasticsearch, Logstash, Kibana)等日志分析工具,帮助开发者追踪微服务间的调用链路。 在实际的项目搭建过程中,你可能需要经历以下...

    spring cloud.zip

    7. **Spring Cloud Sleuth**:实现了分布式追踪,支持 Zipkin 和 ELK(Elasticsearch、Logstash、Kibana)等追踪系统,方便定位分布式系统中的问题。 8. **Spring Cloud Security**:为 OAuth2 和 JWT 提供了集成,...

    spring cloud demo项目包括有组件

    Sleuth为微服务提供了一套完整的分布式追踪解决方案,支持Zipkin和ELK(Elasticsearch、Logstash、Kibana)等追踪系统,帮助开发者分析和优化服务间的调用链路。 10. **Spring Cloud Stream** - 消息驱动的微服务 ...

    springcloud项目Demo

    Sleuth集成Zipkin或ELK(Elasticsearch, Logstash, Kibana)等工具,用于收集和可视化微服务架构中的日志和追踪信息。 9. **Spring Cloud Stream**:消息处理。它提供了一种模型,可以用来开发消息驱动的应用程序,...

    springcloud 微服务 。pdf

    7. Sleuth + Zipkin:分布式追踪,帮助开发者分析请求在分布式系统中的传播路径,有助于性能优化和问题定位。 二、SpringCloud微服务架构的优势: 1. 模块化:每个服务独立开发、测试和部署,降低了复杂性。 2. ...

    SpringCloud周阳脑图

    9. **Spring Cloud Sleuth**:服务追踪组件,集成Zipkin或ELK(Elasticsearch, Logstash, Kibana)堆栈,便于分析和优化微服务架构中的请求流。 10. **Spring Cloud Gateway**:Spring Cloud的新一代API网关,相比...

    深入理解Spring Cloud完整组件微服务的构建

    8. **Spring Cloud Sleuth**:Sleuth提供了分布式跟踪解决方案,与Zipkin或ELK(Elasticsearch、Logstash、Kibana)集成,便于分析微服务架构中的请求链路,帮助定位性能瓶颈。 9. **Spring Cloud Gateway**:...

    springCloud.rar

    8. **Spring Cloud Sleuth**:提供了分布式追踪解决方案,集成Zipkin或ELK(Elasticsearch, Logstash, Kibana)等工具,便于分析和调试分布式系统中的问题。 9. **Spring Cloud Data Flow**:用于构建、部署和管理...

    SpringCloud微服务.zip

    10. **Spring Cloud Sleuth**:Sleuth提供了分布式跟踪解决方案,它与Zipkin、ELK(Elasticsearch、Logstash、Kibana)等日志分析工具集成,帮助追踪微服务间的调用链路,以便进行性能优化和问题排查。 这个压缩包...

    springcloud所需安装包(高级篇)

    此外,Spring Cloud Sleuth提供了分布式追踪解决方案,它支持Zipkin和ELK(Elasticsearch, Logstash, Kibana)等日志分析工具,帮助开发者定位微服务间的调用链路。`spring-cloud-starter-sleuth`和`spring-cloud-...

    spring cloud中文文档

    3. **Spring Cloud Sleuth**:提供了分布式追踪解决方案,支持Zipkin和ELK(Elasticsearch, Logstash, Kibana)。 4. **Spring Cloud Stream**:为构建消息驱动的应用提供模型,支持RabbitMQ、Kafka等消息中间件。 ...

    springcloud 微服务,Sring cloud Greenwich-xmfcn-spring-cloud.zip

    - Sleuth 提供了分布式跟踪解决方案,整合 Zipkin 或 ELK(Elasticsearch, Logstash, Kibana)等日志分析工具,帮助我们理解和优化服务间的调用链路。 8. **Spring Cloud Loadbalancer**:负载均衡器 - 代替了...

    SpringCloud组件案例手册

    9. **Spring Cloud Sleuth服务追踪**:Sleuth与Zipkin、ELK(Elasticsearch、Logstash、Kibana)等工具结合,可以提供微服务间的请求链路追踪,帮助开发者分析和优化系统性能。 10. **Spring Cloud Gateway**:相较...

Global site tag (gtag.js) - Google Analytics