本例使用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.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/
相关推荐
A demo about how to use Spring Cloud Sleuth + Kafka + Zipkin + ElasticSearch 模块介绍 frontend 提供rest接口,处理用户请求,然后转发给backend处理。 backend 提供rest接口,处理fontend的请求。 zipkin-...
1. **Spring Cloud Sleuth Stream**: Spring Cloud Sleuth 是一个分布式跟踪解决方案,它集成在 Spring Cloud 生态系统中,提供了对 Zipkin 和 Brave 等追踪系统的支持。Sleuth Stream 模块则利用 Spring Cloud ...
Spring Cloud Sleuth 就是这样一个工具,它与 Zipkin、Kafka 和 Elasticsearch 结合,提供了强大的分布式追踪解决方案。下面将详细介绍这个集成方案。 首先,Spring Cloud Sleuth 是 Spring Cloud 的一个子项目,它...
Sleuth是一个分布式追踪解决方案,它为服务之间的调用提供日志跟踪,可与Zipkin或ELK(Elasticsearch、Logstash、Kibana)等工具配合,帮助分析请求在系统中的流转过程。 11. **Spring Cloud Stream消息驱动** ...
8. **Spring Cloud Sleuth链路追踪**:Sleuth提供了一种分布式追踪解决方案,它可以与Zipkin、ELK Stack(Elasticsearch, Logstash, Kibana)等日志分析工具结合,便于监控和排查微服务间的调用问题。 9. **Spring ...
8. **SpringCloud Sleuth**:日志追踪解决方案,它与Zipkin、ELK(Elasticsearch, Logstash, Kibana)等集成,可以帮助开发者分析服务间的调用链路,排查问题。 9. **SpringCloud Stream**:提供了一种声明式的消息...
6. **分布式追踪**:SpringCloud Sleuth配合Zipkin或ELK(Elasticsearch, Logstash, Kibana)可以实现微服务间的调用链追踪,帮助开发者定位问题,优化性能。 7. **数据存储与缓存**:在跨境电商系统中,可能涉及到...
10. **Spring Cloud Sleuth**: 提供分布式跟踪解决方案,支持Zipkin、ELK(Elasticsearch, Logstash, Kibana)等日志分析工具,帮助开发者追踪微服务间的调用链路。 在实际的项目搭建过程中,你可能需要经历以下...
7. **Spring Cloud Sleuth**:实现了分布式追踪,支持 Zipkin 和 ELK(Elasticsearch、Logstash、Kibana)等追踪系统,方便定位分布式系统中的问题。 8. **Spring Cloud Security**:为 OAuth2 和 JWT 提供了集成,...
Sleuth为微服务提供了一套完整的分布式追踪解决方案,支持Zipkin和ELK(Elasticsearch、Logstash、Kibana)等追踪系统,帮助开发者分析和优化服务间的调用链路。 10. **Spring Cloud Stream** - 消息驱动的微服务 ...
Sleuth集成Zipkin或ELK(Elasticsearch, Logstash, Kibana)等工具,用于收集和可视化微服务架构中的日志和追踪信息。 9. **Spring Cloud Stream**:消息处理。它提供了一种模型,可以用来开发消息驱动的应用程序,...
7. Sleuth + Zipkin:分布式追踪,帮助开发者分析请求在分布式系统中的传播路径,有助于性能优化和问题定位。 二、SpringCloud微服务架构的优势: 1. 模块化:每个服务独立开发、测试和部署,降低了复杂性。 2. ...
9. **Spring Cloud Sleuth**:服务追踪组件,集成Zipkin或ELK(Elasticsearch, Logstash, Kibana)堆栈,便于分析和优化微服务架构中的请求流。 10. **Spring Cloud Gateway**:Spring Cloud的新一代API网关,相比...
8. **Spring Cloud Sleuth**:Sleuth提供了分布式跟踪解决方案,与Zipkin或ELK(Elasticsearch、Logstash、Kibana)集成,便于分析微服务架构中的请求链路,帮助定位性能瓶颈。 9. **Spring Cloud Gateway**:...
8. **Spring Cloud Sleuth**:提供了分布式追踪解决方案,集成Zipkin或ELK(Elasticsearch, Logstash, Kibana)等工具,便于分析和调试分布式系统中的问题。 9. **Spring Cloud Data Flow**:用于构建、部署和管理...
10. **Spring Cloud Sleuth**:Sleuth提供了分布式跟踪解决方案,它与Zipkin、ELK(Elasticsearch、Logstash、Kibana)等日志分析工具集成,帮助追踪微服务间的调用链路,以便进行性能优化和问题排查。 这个压缩包...
此外,Spring Cloud Sleuth提供了分布式追踪解决方案,它支持Zipkin和ELK(Elasticsearch, Logstash, Kibana)等日志分析工具,帮助开发者定位微服务间的调用链路。`spring-cloud-starter-sleuth`和`spring-cloud-...
3. **Spring Cloud Sleuth**:提供了分布式追踪解决方案,支持Zipkin和ELK(Elasticsearch, Logstash, Kibana)。 4. **Spring Cloud Stream**:为构建消息驱动的应用提供模型,支持RabbitMQ、Kafka等消息中间件。 ...
- Sleuth 提供了分布式跟踪解决方案,整合 Zipkin 或 ELK(Elasticsearch, Logstash, Kibana)等日志分析工具,帮助我们理解和优化服务间的调用链路。 8. **Spring Cloud Loadbalancer**:负载均衡器 - 代替了...
9. **Spring Cloud Sleuth服务追踪**:Sleuth与Zipkin、ELK(Elasticsearch、Logstash、Kibana)等工具结合,可以提供微服务间的请求链路追踪,帮助开发者分析和优化系统性能。 10. **Spring Cloud Gateway**:相较...