From 24ce2e001d861a593b2ce6ff0ef945c6cac88b1a Mon Sep 17 00:00:00 2001
From: YunaiV <>
Date: Sat, 21 Mar 2020 15:45:12 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20zipkin=20=E5=AF=B9=20dubbo?=
=?UTF-8?q?=20=E7=9A=84=E9=93=BE=E8=B7=AF=E8=BF=BD=E8=B8=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 9 +++
.../lab-40-zipkin-dubbo-api/pom.xml | 15 +++++
.../lab40/zipkindemo/api/UserService.java | 16 ++++++
.../lab40/zipkindemo/package-info.java | 1 +
.../lab-40-zipkin-dubbo-consumer/pom.xml | 55 +++++++++++++++++++
.../consumerdemo/ConsumerApplication.java | 13 +++++
.../controller/UserController.java | 22 ++++++++
.../src/main/resources/application.yaml | 8 +++
.../lab-40-zipkin-dubbo-provider/pom.xml | 55 +++++++++++++++++++
.../providerdemo/ProviderApplication.java | 13 +++++
.../providerdemo/service/UserServiceImpl.java | 13 +++++
.../src/main/resources/application.yaml | 15 +++++
lab-40/lab-40-zipkin-dubbo/pom.xml | 21 +++++++
lab-40/pom.xml | 4 ++
14 files changed, 260 insertions(+)
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/pom.xml
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/api/UserService.java
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/package-info.java
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/pom.xml
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/ConsumerApplication.java
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/controller/UserController.java
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/resources/application.yaml
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/pom.xml
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/ProviderApplication.java
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/service/UserServiceImpl.java
create mode 100644 lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/resources/application.yaml
create mode 100644 lab-40/lab-40-zipkin-dubbo/pom.xml
diff --git a/README.md b/README.md
index 2d81fa5a6..51ada68e9 100644
--- a/README.md
+++ b/README.md
@@ -191,10 +191,19 @@
# Dubbo 专栏
+## 基础入门
+
* [《芋道 Spring Boot Dubbo 入门》](http://www.iocoder.cn/Spring-Boot/Dubbo/?github) 对应 [lab-30](https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-30)
* [《芋道 Spring Cloud Alibaba 服务调用 Dubbo 入门》](http://www.iocoder.cn/Spring-Cloud-Alibaba/Dubbo/?github) 对应 [labx-07](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-07)
* [《性能测试 —— Dubbo 基准测试》](http://www.iocoder.cn/Performance-Testing/Dubbo-benchmark/?github)
+## 链路追踪
+
+* [《芋道 Spring Boot 链路追踪 SkyWalking 入门》](http://www.iocoder.cn/Spring-Boot/SkyWalking/?github) 对应 [lab-39](https://github.com/YunaiV/SpringBoot-Labs/tree/master/lab-39)
+* [《芋道 Spring Cloud 链路追踪 SkyWalking 入门》](http://www.iocoder.cn/Spring-Cloud/SkyWalking/?github)的[「TODO. Dubbo 示例」](#)小节
+* [《芋道 Spring Boot 链路追踪 Zipkin》](http://www.iocoder.cn/Spring-Cloud/Spring-Cloud-Sleuth/?github)的[「TODO. Dubbo 示例」](#)小节
+* [《芋道 Spring Cloud 链路追踪 Spring Cloud Sleuth》](http://www.iocoder.cn/Spring-Cloud/Spring-Cloud-Sleuth/?github)的[「7. Dubbo 示例」](#)小节
+
# 消息队列 MQ 专栏
## RocketMQ
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/pom.xml b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/pom.xml
new file mode 100644
index 000000000..634240f6e
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ lab-40-zipkin-dubbo
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-40-zipkin-dubbo-api
+
+
+
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/api/UserService.java b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/api/UserService.java
new file mode 100644
index 000000000..8dd1df339
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/api/UserService.java
@@ -0,0 +1,16 @@
+package cn.iocoder.springboot.lab40.zipkindemo.api;
+
+/**
+ * 用户服务 RPC Service 接口
+ */
+public interface UserService {
+
+ /**
+ * 根据指定用户编号,获得用户信息
+ *
+ * @param id 用户编号
+ * @return 用户信息
+ */
+ String get(Integer id);
+
+}
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/package-info.java b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/package-info.java
new file mode 100644
index 000000000..7f0cd7c61
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-api/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/package-info.java
@@ -0,0 +1 @@
+package cn.iocoder.springcloud.labx13;
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/pom.xml b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/pom.xml
new file mode 100644
index 000000000..5b086e9bf
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/pom.xml
@@ -0,0 +1,55 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.2.RELEASE
+
+
+ 4.0.0
+
+ lab-40-zipkin-dubbo-consumer
+
+
+
+
+ cn.iocoder.springboot.labs
+ lab-40-zipkin-dubbo-api
+ 1.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ org.apache.dubbo
+ dubbo
+ 2.7.4.1
+
+
+ org.apache.dubbo
+ dubbo-spring-boot-starter
+ 2.7.4.1
+
+
+
+
+ org.apache.curator
+ curator-framework
+ 2.13.0
+
+
+ org.apache.curator
+ curator-recipes
+ 2.13.0
+
+
+
+
+
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/ConsumerApplication.java b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/ConsumerApplication.java
new file mode 100644
index 000000000..a16fcee8f
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/ConsumerApplication.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springboot.lab40.zpkindemo.consumerdemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ConsumerApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(ConsumerApplication.class);
+ }
+
+}
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/controller/UserController.java b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/controller/UserController.java
new file mode 100644
index 000000000..38711e656
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/java/cn/iocoder/springboot/lab40/zpkindemo/consumerdemo/controller/UserController.java
@@ -0,0 +1,22 @@
+package cn.iocoder.springboot.lab40.zpkindemo.consumerdemo.controller;
+
+import cn.iocoder.springboot.lab40.zipkindemo.api.UserService;
+import org.apache.dubbo.config.annotation.Reference;
+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("/user")
+public class UserController {
+
+ @Reference(protocol = "dubbo", version = "1.0.0")
+ private UserService userService;
+
+ @GetMapping("/get")
+ public String get(@RequestParam("id") Integer id) {
+ return userService.get(id);
+ }
+
+}
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/resources/application.yaml b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/resources/application.yaml
new file mode 100644
index 000000000..32af35882
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-consumer/src/main/resources/application.yaml
@@ -0,0 +1,8 @@
+# dubbo 配置项,对应 DubboConfigurationProperties 配置类
+dubbo:
+ # Dubbo 应用配置
+ application:
+ name: user-service-consumer # 应用名
+ # Dubbo 注册中心配置
+ registry:
+ address: zookeeper://127.0.0.1:2181 # 注册中心地址。个鞥多注册中心,可见 http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html 文档。
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/pom.xml b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/pom.xml
new file mode 100644
index 000000000..9e6a301cf
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/pom.xml
@@ -0,0 +1,55 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.2.RELEASE
+
+
+ 4.0.0
+
+ lab-40-zipkin-dubbo-provider
+
+
+
+
+ cn.iocoder.springboot.labs
+ lab-40-zipkin-dubbo-api
+ 1.0-SNAPSHOT
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+
+ org.apache.dubbo
+ dubbo
+ 2.7.4.1
+
+
+ org.apache.dubbo
+ dubbo-spring-boot-starter
+ 2.7.4.1
+
+
+
+
+ org.apache.curator
+ curator-framework
+ 2.13.0
+
+
+ org.apache.curator
+ curator-recipes
+ 2.13.0
+
+
+
+
+
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/ProviderApplication.java b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/ProviderApplication.java
new file mode 100644
index 000000000..4768a9978
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/ProviderApplication.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springboot.lab40.zipkindemo.providerdemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ProviderApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(ProviderApplication.class);
+ }
+
+}
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/service/UserServiceImpl.java b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/service/UserServiceImpl.java
new file mode 100644
index 000000000..244c5482a
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/java/cn/iocoder/springboot/lab40/zipkindemo/providerdemo/service/UserServiceImpl.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springboot.lab40.zipkindemo.providerdemo.service;
+
+import cn.iocoder.springboot.lab40.zipkindemo.api.UserService;
+
+@org.apache.dubbo.config.annotation.Service(version = "1.0.0")
+public class UserServiceImpl implements UserService {
+
+ @Override
+ public String get(Integer id) {
+ return "user:" + id;
+ }
+
+}
diff --git a/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/resources/application.yaml b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/resources/application.yaml
new file mode 100644
index 000000000..3998dbebf
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/lab-40-zipkin-dubbo-provider/src/main/resources/application.yaml
@@ -0,0 +1,15 @@
+# dubbo 配置项,对应 DubboConfigurationProperties 配置类
+dubbo:
+ # Dubbo 应用配置
+ application:
+ name: user-service-provider # 应用名
+ # Dubbo 注册中心配
+ registry:
+ address: zookeeper://127.0.0.1:2181 # 注册中心地址。个鞥多注册中心,可见 http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html 文档。
+ # Dubbo 服务提供者协议配置
+ protocol:
+ port: -1 # 协议端口。使用 -1 表示随机端口。
+ name: dubbo # 使用 `dubbo://` 协议。更多协议,可见 http://dubbo.apache.org/zh-cn/docs/user/references/protocol/introduction.html 文档
+ # 配置扫描 Dubbo 自定义的 @Service 注解,暴露成 Dubbo 服务提供者
+ scan:
+ base-packages: cn.iocoder.springboot.lab40.zipkindemo.providerdemo.service
diff --git a/lab-40/lab-40-zipkin-dubbo/pom.xml b/lab-40/lab-40-zipkin-dubbo/pom.xml
new file mode 100644
index 000000000..6295596b0
--- /dev/null
+++ b/lab-40/lab-40-zipkin-dubbo/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ labx-13
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-40-zipkin-dubbo
+ pom
+
+ lab-40-zipkin-dubbo-api
+ lab-40-zipkin-dubbo-provider
+ lab-40-zipkin-dubbo-consumer
+
+
+
+
diff --git a/lab-40/pom.xml b/lab-40/pom.xml
index 66f0a911d..88978f84c 100644
--- a/lab-40/pom.xml
+++ b/lab-40/pom.xml
@@ -14,6 +14,8 @@
lab-40-demo
lab-40-springmvc
+ lab-40-zipkin-dubbo
+
lab-40-mysql
lab-40-redis
lab-40-mongodb
@@ -22,8 +24,10 @@
lab-40-kafka
lab-40-rabbitmq
lab-40-activemq
+
lab-40-logback
lab-40-opentracing
+