diff --git a/README.md b/README.md
index e801c933..0f069739 100644
--- a/README.md
+++ b/README.md
@@ -145,7 +145,7 @@
* [《芋道 Spring Cloud Netflix 负载均衡 Ribbon 入门》](http://www.iocoder.cn/Spring-Cloud-Netflix/Ribbon/?github) 对应 [labx-02](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-02)
* [《芋道 Spring Cloud 声明式调用 Feign 入门》](http://www.iocoder.cn/Spring-Cloud/Feign/?github) 对应 [labx-03](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-03)
* [《芋道 Spring Cloud 服务网关 Spring Cloud Gateway 入门》](http://www.iocoder.cn/Spring-Cloud/Spring-Cloud-Gateway/?github) 对应 [labx-08](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-08)
-* 《芋道 Spring Cloud 链路追踪 SkyWalking 入门》
+* [《芋道 Spring Cloud 链路追踪 SkyWalking 入门》](http://www.iocodere.cn/Spring-Cloud/SkyWalking/?github) 对应 [labx-14](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-14)
* TODO 监控
# Spring Cloud 专栏
@@ -186,8 +186,8 @@
## 链路追踪
-* 《芋道 Spring Cloud 链路追踪 Sleuth 入门》
-* 《芋道 Spring Cloud 链路追踪 SkyWalking 入门》
+* [《芋道 Spring Cloud 链路追踪 SkyWalking 入门》](http://www.iocodere.cn/Spring-Cloud/SkyWalking/?github) 对应 [labx-14](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-14)
+* [《芋道 Spring Cloud 链路追踪 Spring Cloud Sleuth》](http://www.iocodere.cn/Spring-Cloud/Spring-Cloud-Sleuth/?github) 对应 [labx-13](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-13)
# Dubbo 专栏
diff --git a/labx-13/labx-13-sc-sleuth-feign/pom.xml b/labx-13/labx-13-sc-sleuth-feign/pom.xml
new file mode 100644
index 00000000..3598d582
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-feign/pom.xml
@@ -0,0 +1,64 @@
+
+
+
+ labx-13
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ labx-13-sc-sleuth-feign
+
+
+ 1.8
+ 1.8
+ 2.2.4.RELEASE
+ Hoxton.SR1
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ ${spring.boot.version}
+ pom
+ import
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring.cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-zipkin
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+
diff --git a/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/FeignApplication.java b/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/FeignApplication.java
new file mode 100644
index 00000000..cc59b851
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/FeignApplication.java
@@ -0,0 +1,15 @@
+package cn.iocoder.springcloud.labx13.springmvcdemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@SpringBootApplication
+@EnableFeignClients
+public class FeignApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(FeignApplication.class, args);
+ }
+
+}
diff --git a/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/controller/FeignController.java b/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/controller/FeignController.java
new file mode 100644
index 00000000..920a9593
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/controller/FeignController.java
@@ -0,0 +1,22 @@
+package cn.iocoder.springcloud.labx13.springmvcdemo.controller;
+
+import cn.iocoder.springcloud.labx13.springmvcdemo.feign.UserServiceFeignClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/feign")
+public class FeignController {
+
+ @Autowired
+ private UserServiceFeignClient userServiceFeignClient;
+
+ @GetMapping("/get")
+ public String get(@RequestParam("id") Integer id) {
+ return userServiceFeignClient.get(id);
+ }
+
+}
diff --git a/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/feign/UserServiceFeignClient.java b/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/feign/UserServiceFeignClient.java
new file mode 100644
index 00000000..534e06a3
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-feign/src/main/java/cn/iocoder/springcloud/labx13/springmvcdemo/feign/UserServiceFeignClient.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springcloud.labx13.springmvcdemo.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(name = "user-service", url = "http://127.0.0.1:8080")
+public interface UserServiceFeignClient {
+
+ @GetMapping("/user/get")
+ String get(@RequestParam("id") Integer id);
+
+}
diff --git a/labx-13/labx-13-sc-sleuth-feign/src/main/resources/application.yml b/labx-13/labx-13-sc-sleuth-feign/src/main/resources/application.yml
new file mode 100644
index 00000000..ac93ab08
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-feign/src/main/resources/application.yml
@@ -0,0 +1,19 @@
+server:
+ port: 8081
+
+spring:
+ application:
+ name: feign-service # 服务名
+
+ # Zipkin 配置项,对应 ZipkinProperties 类
+ zipkin:
+ base-url: http://127.0.0.1:9411 # Zipkin 服务的地址
+
+ # Spring Cloud Sleuth 配置项
+ sleuth:
+ # Spring Cloud Sleuth 针对 Web 组件的配置项,例如说 SpringMVC
+ web:
+ enabled: true # 是否开启,默认为 true
+ # Spring Cloud Sleuth 针对 Feign 组件的配置项,对应 SleuthFeignProperties 类
+ feign:
+ enabled: true # 是否开启,默认为 true
diff --git a/labx-13/labx-13-sc-sleuth-springcloudgateway/pom.xml b/labx-13/labx-13-sc-sleuth-springcloudgateway/pom.xml
new file mode 100644
index 00000000..39ff3012
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-springcloudgateway/pom.xml
@@ -0,0 +1,64 @@
+
+
+
+ labx-08
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ labx-13-sc-sleuth-springcloudgateway
+
+
+ 2.2.4.RELEASE
+ Hoxton.SR1
+ 2.2.0.RELEASE
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ ${spring.boot.version}
+ pom
+ import
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring.cloud.version}
+ pom
+ import
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-dependencies
+ ${spring.cloud.alibaba.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-gateway
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-zipkin
+
+
+
+
diff --git a/labx-13/labx-13-sc-sleuth-springcloudgateway/src/main/java/cn/iocoder/springcloud/labx13/gatewaydemo/GatewayApplication.java b/labx-13/labx-13-sc-sleuth-springcloudgateway/src/main/java/cn/iocoder/springcloud/labx13/gatewaydemo/GatewayApplication.java
new file mode 100644
index 00000000..58c44dd7
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-springcloudgateway/src/main/java/cn/iocoder/springcloud/labx13/gatewaydemo/GatewayApplication.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springcloud.labx13.gatewaydemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class GatewayApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(GatewayApplication.class, args);
+ }
+
+}
diff --git a/labx-13/labx-13-sc-sleuth-springcloudgateway/src/main/resources/application.yaml b/labx-13/labx-13-sc-sleuth-springcloudgateway/src/main/resources/application.yaml
new file mode 100644
index 00000000..070d13a8
--- /dev/null
+++ b/labx-13/labx-13-sc-sleuth-springcloudgateway/src/main/resources/application.yaml
@@ -0,0 +1,26 @@
+server:
+ port: 8888
+
+spring:
+ application:
+ name: gateway-application
+
+ # Zipkin 配置项,对应 ZipkinProperties 类
+ zipkin:
+ base-url: http://127.0.0.1:9411 # Zipkin 服务的地址
+
+ # Spring Cloud Sleuth 配置项
+ sleuth:
+ # Spring Cloud Sleuth 针对 Web 组件的配置项,例如说 SpringMVC
+ web:
+ enabled: true # 是否开启,默认为 true
+
+ cloud:
+ # Spring Cloud Gateway 配置项,对应 GatewayProperties 类
+ gateway:
+ # 路由配置项,对应 RouteDefinition 数组
+ routes:
+ - id: feign-service-route
+ uri: http://127.0.0.1:8081
+ predicates:
+ - Path=/**
diff --git a/labx-13/labx-13-sc-sleuth-springmvc/pom.xml b/labx-13/labx-13-sc-sleuth-springmvc/pom.xml
index e56fa69e..a8348b65 100644
--- a/labx-13/labx-13-sc-sleuth-springmvc/pom.xml
+++ b/labx-13/labx-13-sc-sleuth-springmvc/pom.xml
@@ -48,7 +48,7 @@
spring-boot-starter-web
-
+
org.springframework.cloud
spring-cloud-starter-zipkin
diff --git a/labx-13/pom.xml b/labx-13/pom.xml
index 0139a469..2320d9c4 100644
--- a/labx-13/pom.xml
+++ b/labx-13/pom.xml
@@ -12,8 +12,11 @@
labx-13
pom
-
+ labx-13-sc-sleuth-zipkin-server-demo-in-memory
+
labx-13-sc-sleuth-springmvc
+ labx-13-sc-sleuth-feign
+ labx-13-sc-sleuth-springcloudgateway