本例使用spring cloud sleuth
来实现分布式追踪,利用kafka
实现异步的分布式追踪,使用elasticsearch
存储追踪数据,使用zipkin
查看追踪内容。
1.前置条件
使用docker compose
安装kafka
和elasticsearch
:
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.3
是docker.elastic.co/elasticsearch/elasticsearch:5.5.3
阿里云加速镜像
2.搭建zipkin server
依赖
<dependency>
<groupid>org.springframework.cloudgroupid>
<artifactid>spring-cloud-starter-sleuthartifactid>
dependency>
<dependency>
<groupid>org.springframework.cloudgroupid>
<artifactid>spring-cloud-sleuth-zipkin-streamartifactid>
dependency>
<dependency>
<groupid>org.springframework.cloudgroupid>
<artifactid>spring-cloud-stream-binder-kafkaartifactid>
dependency>
<dependency>
<groupid>io.zipkin.javagroupid>
<artifactid>zipkin-autoconfigure-uiartifactid>
dependency>
<dependency>
<groupid>io.zipkin.javagroupid>
<artifactid>zipkin-autoconfigure-storage-elasticsearch-httpartifactid>
<version>2.4.1version>
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.cloudgroupid>
<artifactid>spring-cloud-starter-sleuthartifactid>
dependency>
<dependency>
<groupid>org.springframework.cloudgroupid>
<artifactid>spring-cloud-stream-binder-kafkaartifactid>
dependency>
<dependency>
<groupid>org.springframework.cloudgroupid>
<artifactid>spring-cloud-sleuth-streamartifactid>
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.cloudgroupid>
<artifactid>spring-cloud-starter-sleuthartifactid>
dependency>
<dependency>
<groupid>org.springframework.cloudgroupid>
<artifactid>spring-cloud-stream-binder-kafkaartifactid>
dependency>
<dependency>
<groupid>org.springframework.cloudgroupid>
<artifactid>spring-cloud-sleuth-streamartifactid>
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页面:
源码地址:
相关推荐
使用spring cloud sleuth rabbitmq zipkin实现微服务分布式链路追踪,springcloud版本使用的是greenwich.sr1
史上最简单的springcloud教程 第九篇 服务链路追踪(spring cloud sleuth).pdf史上最简单的springcloud教程 第九篇 服务链路追踪(spring cloud sleuth).pdf史上最简单的springcloud教程 第九篇 服务链路追踪(spring ...
史上最简单的springcloud教程 第九篇 服务链路追踪(spring cloud sleuth).docx史上最简单的springcloud教程 第九篇 服务链路追踪(spring cloud sleuth).docx史上最简单的springcloud教程 第九篇 服务链路追踪(spring...
springcloud链路追踪-spring cloud sleuth 和 zipkin 介绍 & windows 下使用初步
在微服务架构中,微服务之间互相调用,该实例通过spring cloud sleuth组件实现了微服务跟踪的方案
a demo about how to use spring cloud sleuth kafka zipkin elasticsearch 模块介绍 frontend 提供rest接口,处理用户请求,然后转发给backend处理。 backend 提供rest接口,处理fontend的请求。 zipkin-...
springcloud——分布式跟踪(sleuth)之spring cloud sleuth 主要功能就是在分布式系统中提供追踪欧洲杯足彩官网的解决方案。
09spring cloud sleuth:分布式请求链路跟踪1
毕业设计基于springcloud微服务分布式链路追踪系统源码 追踪实现 使用zipkin sleuth实现 这个是比较成熟的分布式链路追踪实现方案 拦截器自定义实现 基于google dapper 论文,进行自定义实现。 原理: traceid :...
spring cloud sleuth 全链路追踪
springcloud集成调用跟踪 springcloud sleuth kafka elasticsearch zipkin
springcloud 2020版本教程4:使用spring cloud sleuth zipkin实现仓库追踪 spring cloud 阿里巴巴教程 spring cloud阿里巴巴教程:使用nacos作为服务注册发现组件 spring cloud阿里巴巴教程:使用nacos作为配置中心 ...
spring cloud sleuth 全链路追踪数据表
springcloud sleuth 分布式请求链路跟踪 springcloud alibaba入门简介 springcloud alibaba nacos 服务注册和配置中心 springcloud alibaba sentinel 实现熔断与限流 springcloud alibaba seata 处理分布式事务
1.spring cloud sleuth.pdf1.spring cloud sleuth.pdf
rabbitmq柔性事务方案、springcloud-gateway网关、feign远程调用、sleuth zipkin链路追踪系统、spring cache缓存、springsession跨子域session同步方案、基于elasticsearch7全文检索、异步编排与线程池、压力测试...
spring cloud sleuth与spring boot 2功能端点的集成。 一个演示应用程序,用于显示spring boot 2 webfulx应用程序的spring cloud sleuth集成。 要运行该应用程序,请使用以下命令(为此需要java 8) ./gradlew ...
(spring-cloud-sleuth-stream mybatis rabbit) (kafka elasticsearch zipkin)
微服务等待时间分析 使用spring cloud sleuth和zipkin测量spring boot应用程序中的延迟
主要介绍了spring cloud sleuth整合zipkin过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下