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 +