From 899e8670b3b78ea9b5ecf67b501dbd06407d05ee Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Fri, 22 May 2020 19:22:33 +0800 Subject: [PATCH] =?UTF-8?q?soul=20=E7=A4=BA=E4=BE=8B=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 + lab-08/pom.xml | 2 +- .../pom.xml | 14 ++++ .../lab60/userservice/api/UserService.java | 7 ++ .../pom.xml | 79 +++++++++++++++++++ .../userservice/UserServiceApplication.java | 13 +++ .../userservice/service/UserServiceImpl.java | 16 ++++ .../src/main/resources/application.yaml | 26 ++++++ lab-60/lab-60-soul-dubbo-demo/pom.xml | 20 +++++ lab-60/lab-60-soul-spring-boot-demo/pom.xml | 47 +++++++++++ .../springboot/lab60/DemoApplication.java | 13 +++ .../lab60/controller/DemoController.java | 19 +++++ .../src/main/resources/application.yaml | 7 ++ lab-60/pom.xml | 20 +++++ pom.xml | 3 +- 15 files changed, 287 insertions(+), 2 deletions(-) create mode 100644 lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/pom.xml create mode 100644 lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/src/main/java/cn/iocoder/springboot/lab60/userservice/api/UserService.java create mode 100644 lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/pom.xml create mode 100644 lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/UserServiceApplication.java create mode 100644 lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/service/UserServiceImpl.java create mode 100644 lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/resources/application.yaml create mode 100644 lab-60/lab-60-soul-dubbo-demo/pom.xml create mode 100644 lab-60/lab-60-soul-spring-boot-demo/pom.xml create mode 100644 lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/DemoApplication.java create mode 100644 lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/controller/DemoController.java create mode 100644 lab-60/lab-60-soul-spring-boot-demo/src/main/resources/application.yaml create mode 100644 lab-60/pom.xml diff --git a/README.md b/README.md index c5969915..9dafe25a 100644 --- a/README.md +++ b/README.md @@ -263,6 +263,9 @@ * [《芋道 Spring Boot 服务容错 Hystrix 入门》](http://www.iocoder.cn/Spring-Boot/Hystrix/?github)的[「6. 集成到 Dubbo」](#)小节 * [《芋道 Spring Cloud Netflix 服务容错 Hystrix 入门》](http://www.iocoder.cn/Spring-Cloud/Netflix-Hystrix/?github)的[「10. 集成到 Dubbo」](#)小节 +**[Resilience4j](http://www.iocoder.cn/categories/Resilience4j/?github)** +* [《芋道 Spring Boot 服务容错 Resilience4j 入门》](http://www.iocoder.cn/Spring-Boot/Resilience4j/?github)的[「10. 集成到 Dubbo」](#)小节 + ## 分布式事务 **[Seata](http://www.iocoder.cn/Seata/install/?github)** diff --git a/lab-08/pom.xml b/lab-08/pom.xml index bd20c0f7..bc3bdcfb 100644 --- a/lab-08/pom.xml +++ b/lab-08/pom.xml @@ -19,7 +19,7 @@ - + diff --git a/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/pom.xml b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/pom.xml new file mode 100644 index 00000000..998e8659 --- /dev/null +++ b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/pom.xml @@ -0,0 +1,14 @@ + + + + lab-60-soul-dubbo-demo + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-60-soul-dubbo-demo-user-service-api + + diff --git a/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/src/main/java/cn/iocoder/springboot/lab60/userservice/api/UserService.java b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/src/main/java/cn/iocoder/springboot/lab60/userservice/api/UserService.java new file mode 100644 index 00000000..b85468b9 --- /dev/null +++ b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service-api/src/main/java/cn/iocoder/springboot/lab60/userservice/api/UserService.java @@ -0,0 +1,7 @@ +package cn.iocoder.springboot.lab60.userservice.api; + +public interface UserService { + + String getUser(Integer id); + +} diff --git a/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/pom.xml b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/pom.xml new file mode 100644 index 00000000..ada8bc2f --- /dev/null +++ b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/pom.xml @@ -0,0 +1,79 @@ + + + + lab-60-soul-dubbo-demo + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-60-soul-dubbo-demo-user-service + + + 1.8 + 1.8 + 2.2.4.RELEASE + + + + + + org.springframework.boot + spring-boot-starter-parent + ${spring.boot.version} + pom + import + + + + + + + + cn.iocoder.springboot.labs + lab-60-soul-dubbo-demo-user-service-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 + + + + + com.alibaba.nacos + nacos-client + 1.2.1 + + + org.apache.dubbo + dubbo-registry-nacos + 2.7.4.1 + + + + + org.dromara + soul-client-apache-dubbo + 2.1.2-RELEASE + + + + + diff --git a/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/UserServiceApplication.java b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/UserServiceApplication.java new file mode 100644 index 00000000..0a486989 --- /dev/null +++ b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/UserServiceApplication.java @@ -0,0 +1,13 @@ +package cn.iocoder.springboot.lab60.userservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class UserServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(UserServiceApplication.class); + } + +} diff --git a/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/service/UserServiceImpl.java b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/service/UserServiceImpl.java new file mode 100644 index 00000000..d15511e8 --- /dev/null +++ b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/java/cn/iocoder/springboot/lab60/userservice/service/UserServiceImpl.java @@ -0,0 +1,16 @@ +package cn.iocoder.springboot.lab60.userservice.service; + +import cn.iocoder.springboot.lab60.userservice.api.UserService; +import org.dromara.soul.client.common.annotation.SoulClient; + +@org.apache.dubbo.config.annotation.Service(version = "1.0.0") +public class UserServiceImpl implements UserService { + + @Override + @SoulClient(path = "/user/get", desc = "获得用户详细") + public String getUser(Integer id) { + return "User:" + id; + } + +} + diff --git a/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/resources/application.yaml b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/resources/application.yaml new file mode 100644 index 00000000..3f5941ab --- /dev/null +++ b/lab-60/lab-60-soul-dubbo-demo/lab-60-soul-dubbo-demo-user-service/src/main/resources/application.yaml @@ -0,0 +1,26 @@ +# dubbo 配置项,对应 DubboConfigurationProperties 配置类 +dubbo: + # Dubbo 应用配置 + application: + name: user-service # 应用名 + # Dubbo 注册中心配 + registry: + address: nacos://127.0.0.1:8848 # 注册中心地址。个鞥多注册中心,可见 http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html 文档。 +# 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 服务提供者配置 + provider: + timeout: 1000 # 【重要】远程服务调用超时时间,单位:毫秒。默认为 1000 毫秒,胖友可以根据自己业务修改 + # 配置扫描 Dubbo 自定义的 @Service 注解,暴露成 Dubbo 服务提供者 + scan: + base-packages: cn.iocoder.springboot.lab60.userservice.service + +soul: + # Soul 针对 Dubbo 的配置项,对应 DubboConfig 配置类 + dubbo: + admin-url: http://127.0.0.1:9095 + context-path: /demo-api + app-name: demo-service diff --git a/lab-60/lab-60-soul-dubbo-demo/pom.xml b/lab-60/lab-60-soul-dubbo-demo/pom.xml new file mode 100644 index 00000000..f833523d --- /dev/null +++ b/lab-60/lab-60-soul-dubbo-demo/pom.xml @@ -0,0 +1,20 @@ + + + + lab-60 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-60-soul-dubbo-demo + pom + + + lab-60-soul-dubbo-demo-user-service-api + lab-60-soul-dubbo-demo-user-service + + + diff --git a/lab-60/lab-60-soul-spring-boot-demo/pom.xml b/lab-60/lab-60-soul-spring-boot-demo/pom.xml new file mode 100644 index 00000000..ae07cb05 --- /dev/null +++ b/lab-60/lab-60-soul-spring-boot-demo/pom.xml @@ -0,0 +1,47 @@ + + + + lab-60 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-60-soul-spring-boot-demo + + + 1.8 + 1.8 + 2.2.4.RELEASE + + + + + + org.springframework.boot + spring-boot-starter-parent + ${spring.boot.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.dromara + soul-client-springmvc + 2.1.2-RELEASE + + + + diff --git a/lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/DemoApplication.java b/lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/DemoApplication.java new file mode 100644 index 00000000..bf581bae --- /dev/null +++ b/lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/DemoApplication.java @@ -0,0 +1,13 @@ +package cn.iocoder.springboot.lab60; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} diff --git a/lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/controller/DemoController.java b/lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/controller/DemoController.java new file mode 100644 index 00000000..0e55a904 --- /dev/null +++ b/lab-60/lab-60-soul-spring-boot-demo/src/main/java/cn/iocoder/springboot/lab60/controller/DemoController.java @@ -0,0 +1,19 @@ +package cn.iocoder.springboot.lab60.controller; + +import org.dromara.soul.client.common.annotation.SoulClient; +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("/demo") +public class DemoController { + + @GetMapping("/get") + @SoulClient(path = "/demo/get", desc = "示例接口") + public String get(@RequestParam("id") Integer id) { + return "DEMO:" + id; + } + +} diff --git a/lab-60/lab-60-soul-spring-boot-demo/src/main/resources/application.yaml b/lab-60/lab-60-soul-spring-boot-demo/src/main/resources/application.yaml new file mode 100644 index 00000000..05e79927 --- /dev/null +++ b/lab-60/lab-60-soul-spring-boot-demo/src/main/resources/application.yaml @@ -0,0 +1,7 @@ +soul: + # Soul 针对 SpringMVC 的配置项,对应 SoulHttpConfig 配置类 + http: + admin-url: http://127.0.0.1:9095 + context-path: /demo-api + app-name: demo-service + zookeeper-url: 127.0.0.1:2181 diff --git a/lab-60/pom.xml b/lab-60/pom.xml new file mode 100644 index 00000000..11a7490f --- /dev/null +++ b/lab-60/pom.xml @@ -0,0 +1,20 @@ + + + + labs-parent + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-60 + pom + + + lab-60-soul-dubbo-demo + lab-60-soul-spring-boot-demo + + + diff --git a/pom.xml b/pom.xml index ffd60736..5bb08337 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,8 @@ lab-42 - + lab-60 +