这里我们以前面的`用户服务`添加[Sleuth](https://github.com/spring-cloud/spring-cloud-sleuth)为例。 这里为了学习 Sleuth,因此只需要一个最简单的 Spring Boot 服务即可,先将实验二中的用户服务拷贝过来。
* 引入 Sleuth 依赖:
~~~xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
~~~
* 修改`application.yml`配置文件,增加如下内容:
~~~yml
logging:
level:
root: INFO
......
org.springframework.cloud.sleuth: DEBUG
......
~~~
这里的配置也不是必选的,加上日志,只是为了看到更多 Sleuth 相关的日志。
* 测试运行
启动用户服务过后,访问`http://localhost:8000/users/2`,可看到如下的日志内容:
~~~bash
curl http://localhost:8000/users/2
~~~
~~~java
Hibernate: select user0_.id as id1_0_0_, user0_.age as age2_0_0_, user0_.balance as balance3_0_0_, user0_.name as name4_0_0_, user0_.username as username5_0_0_ from user user0_ where user0_.id=?
2019-05-16 22:09:45.532 TRACE [microservice-provider-user,50227db7fe3a0e3d,50227db7fe3a0e3d,false] 84894 --- [nio-8000-exec-1] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [BIGINT] - [2]
2019-05-16 22:09:45.547 TRACE [microservice-provider-user,50227db7fe3a0e3d,50227db7fe3a0e3d,false] 84894 --- [nio-8000-exec-1] o.h.type.descriptor.sql.BasicExtractor : extracted value ([age2_0_0_] : [INTEGER]) - [28]
2019-05-16 22:09:45.548 TRACE [microservice-provider-user,50227db7fe3a0e3d,50227db7fe3a0e3d,false] 84894 --- [nio-8000-exec-1] o.h.type.descriptor.sql.BasicExtractor : extracted value ([balance3_0_0_] : [NUMERIC]) - [180.00]
2019-05-16 22:09:45.548 TRACE [microservice-provider-user,50227db7fe3a0e3d,50227db7fe3a0e3d,false] 84894 --- [nio-8000-exec-1] o.h.type.descriptor.sql.BasicExtractor : extracted value ([name4_0_0_] : [VARCHAR]) - [李四]
2019-05-16 22:09:45.548 TRACE [microservice-provider-user,50227db7fe3a0e3d,50227db7fe3a0e3d,false] 84894 --- [nio-8000-exec-1] o.h.type.descriptor.sql.BasicExtractor : extracted value ([username5_0_0_] : [VARCHAR]) - [account2]
~~~
仔细观察上面的日志中,多出来类似的信息:
~~~java
[microservice-provider-user,50227db7fe3a0e3d,50227db7fe3a0e3d,false]
~~~
是不是觉得看着这个毫无头绪,也看不出来个究竟。一个良好的监控,应该有一个人类亲和的界面,这个界面就是 Zipkin。 那么,我们接下来就结合`Zipkin`来帮助我们吧~
- 微服务开发框架 SpringCloud
- 单体应用
- 如何解决单体应用架构中存在的问题
- 如何实现微服务架构以及技术选型
- Spring Cloud 特点
- 开始使用 Spring Cloud 实战微服务
- 快速搭建开发脚手架
- 编写服务提供者-用户微服务
- 编写服务消费者【电影微服务】
- 整合 Spring Boot Actuator
- 开始整合
- 微服务注册与发现
- 编写服务发现服务
- 注册微服务至 Eureka Server
- 更新服务提供者 (用户微服务)
- 更新服务消费者 (电影微服务)
- 查看注册结果
- Ribbon 客户端负载均衡
- Ribbon 简介
- 引入 Ribbon
- Ribbon 入门
- Feign 声明式 REST 调用
- 改造项目
- Hystrix 容错处理
- 实现容错的手段
- Hystrix 简介
- 开始使用
- 测试
- Zuul 网关
- 网关是什么
- Spring Cloud Zuul 介绍
- Zuul 入门使用
- 网关测试
- Spring Cloud Config 配置管理
- 配置中心的作用
- Spring Cloud Config 简介
- Spring Cloud Config 使用
- Sleuth 与 Zipkin 结合图形化展示
- 分布式追踪相关基础概念
- Spring Cloud Sleuth 介绍及使用
- Zipin 简介
- Docker 入门
- 云原生概念
- Docker 容器介绍
- Docker 常用命令
- 微服务运行在 Docker 之上
- Dockerfile 及其常见指令介绍
- 改造 Eureka Server 微服务
- Docker Compose 编排微服务
- 安装 Compose
- Compose 快速入门
- Compose 编排 SpringCloud微服务
- 将 Eureka 等微服务运行在 Docker 容器中
- Docker-Compose 编排文件的编写
- 通过 Docker Compose 启动、停止
- Compose编排Spring Cloud微服务2
- Docker-Compose 来部署一个双节点的 Eureka 集群
