From 85328ffc590f78b5a7ae5c1c5d4445f2f75db009 Mon Sep 17 00:00:00 2001
From: YunaiV <>
Date: Sun, 26 Apr 2020 07:32:14 +0800
Subject: [PATCH] =?UTF-8?q?dubbo=20=E5=A2=9E=E5=8A=A0=20nacos=20=E6=B3=A8?=
=?UTF-8?q?=E5=86=8C=E4=B8=AD=E5=BF=83=E7=9A=84=E7=A4=BA=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
lab-30/lab-30-dubbo-annotations-nacos/pom.xml | 21 ++++++
.../user-rpc-service-api-03/pom.xml | 15 +++++
.../lab30/rpc/api/UserRpcService.java | 18 +++++
.../springboot/lab30/rpc/dto/UserDTO.java | 49 ++++++++++++++
.../user-rpc-service-consumer-03/pom.xml | 67 +++++++++++++++++++
.../lab30/rpc/ConsumerApplication.java | 38 +++++++++++
.../src/main/resources/application.yaml | 13 ++++
.../user-rpc-service-provider-03/pom.xml | 67 +++++++++++++++++++
.../lab30/rpc/ProviderApplication.java | 14 ++++
.../lab30/rpc/service/UserRpcServiceImpl.java | 17 +++++
.../src/main/resources/application.yaml | 20 ++++++
lab-30/pom.xml | 1 +
12 files changed, 340 insertions(+)
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/pom.xml
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/pom.xml
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/api/UserRpcService.java
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/dto/UserDTO.java
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/pom.xml
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ConsumerApplication.java
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/resources/application.yaml
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/pom.xml
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ProviderApplication.java
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/service/UserRpcServiceImpl.java
create mode 100644 lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/resources/application.yaml
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/pom.xml b/lab-30/lab-30-dubbo-annotations-nacos/pom.xml
new file mode 100644
index 00000000..28352f70
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ lab-30
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ lab-30-dubbo-annotations-nacos
+ pom
+
+ user-rpc-service-api-03
+ user-rpc-service-provider-03
+ user-rpc-service-consumer-03
+
+
+
+
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/pom.xml b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/pom.xml
new file mode 100644
index 00000000..addececb
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ lab-30-dubbo-annotations-demo
+ cn.iocoder.springboot.labs
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ user-rpc-service-api-03
+
+
+
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/api/UserRpcService.java b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/api/UserRpcService.java
new file mode 100644
index 00000000..d65cb1fd
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/api/UserRpcService.java
@@ -0,0 +1,18 @@
+package cn.iocoder.springboot.lab30.rpc.api;
+
+import cn.iocoder.springboot.lab30.rpc.dto.UserDTO;
+
+/**
+ * 用户服务 RPC Service 接口
+ */
+public interface UserRpcService {
+
+ /**
+ * 根据指定用户编号,获得用户信息
+ *
+ * @param id 用户编号
+ * @return 用户信息
+ */
+ UserDTO get(Integer id);
+
+}
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/dto/UserDTO.java b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/dto/UserDTO.java
new file mode 100644
index 00000000..806923fa
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-api-03/src/main/java/cn/iocoder/springboot/lab30/rpc/dto/UserDTO.java
@@ -0,0 +1,49 @@
+package cn.iocoder.springboot.lab30.rpc.dto;
+
+import java.io.Serializable;
+
+/**
+ * 用户信息 DTO
+ */
+public class UserDTO implements Serializable {
+
+ /**
+ * 用户编号
+ */
+ private Integer id;
+ /**
+ * 昵称
+ */
+ private String name;
+ /**
+ * 性别
+ */
+ private Integer gender;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public UserDTO setId(Integer id) {
+ this.id = id;
+ return this;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public UserDTO setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public Integer getGender() {
+ return gender;
+ }
+
+ public UserDTO setGender(Integer gender) {
+ this.gender = gender;
+ return this;
+ }
+}
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/pom.xml b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/pom.xml
new file mode 100644
index 00000000..63d22468
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/pom.xml
@@ -0,0 +1,67 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.1.RELEASE
+
+
+ 4.0.0
+
+ user-rpc-service-consumer-03
+
+
+
+
+ cn.iocoder.springboot.labs
+ user-rpc-service-api-03
+ 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
+
+
+
+
+
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ConsumerApplication.java b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ConsumerApplication.java
new file mode 100644
index 00000000..1a744ca9
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ConsumerApplication.java
@@ -0,0 +1,38 @@
+package cn.iocoder.springboot.lab30.rpc;
+
+import cn.iocoder.springboot.lab30.rpc.api.UserRpcService;
+import cn.iocoder.springboot.lab30.rpc.dto.UserDTO;
+import org.apache.dubbo.config.annotation.Reference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.stereotype.Component;
+
+@SpringBootApplication
+public class ConsumerApplication {
+
+ public static void main(String[] args) {
+ // 启动 Spring Boot 应用
+ ConfigurableApplicationContext context = SpringApplication.run(ConsumerApplication.class, args);
+ }
+
+ @Component
+ public class UserRpcServiceTest implements CommandLineRunner {
+
+ private final Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Reference(version = "${dubbo.consumer.UserRpcService.version}")
+ private UserRpcService userRpcService;
+
+ @Override
+ public void run(String... args) throws Exception {
+ UserDTO user = userRpcService.get(1);
+ logger.info("[run][发起一次 Dubbo RPC 请求,获得用户为({})", user);
+ }
+
+ }
+
+}
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/resources/application.yaml b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/resources/application.yaml
new file mode 100644
index 00000000..6042c876
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-consumer-03/src/main/resources/application.yaml
@@ -0,0 +1,13 @@
+# dubbo 配置项,对应 DubboConfigurationProperties 配置类
+dubbo:
+ # Dubbo 应用配置
+ application:
+ name: user-service-consumer # 应用名
+ # Dubbo 注册中心配置
+ registry:
+ address: nacos://127.0.0.1:8848 # 注册中心地址。个鞥多注册中心,可见 http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html 文档。
+ # Dubbo 消费者配置
+ consumer:
+ timeout: 1000 # 【重要】远程服务调用超时时间,单位:毫秒。默认为 1000 毫秒,胖友可以根据自己业务修改
+ UserRpcService:
+ version: 1.0.0
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/pom.xml b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/pom.xml
new file mode 100644
index 00000000..29a22d18
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/pom.xml
@@ -0,0 +1,67 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.1.RELEASE
+
+
+ 4.0.0
+
+ user-rpc-service-provider-03
+
+
+
+
+ cn.iocoder.springboot.labs
+ user-rpc-service-api-03
+ 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
+
+
+
+
+
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ProviderApplication.java b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ProviderApplication.java
new file mode 100644
index 00000000..2ba63663
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/ProviderApplication.java
@@ -0,0 +1,14 @@
+package cn.iocoder.springboot.lab30.rpc;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ProviderApplication {
+
+ public static void main(String[] args) {
+ // 启动 Spring Boot 应用
+ SpringApplication.run(ProviderApplication.class, args);
+ }
+
+}
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/service/UserRpcServiceImpl.java b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/service/UserRpcServiceImpl.java
new file mode 100644
index 00000000..fe6ef676
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/java/cn/iocoder/springboot/lab30/rpc/service/UserRpcServiceImpl.java
@@ -0,0 +1,17 @@
+package cn.iocoder.springboot.lab30.rpc.service;
+
+import cn.iocoder.springboot.lab30.rpc.api.UserRpcService;
+import cn.iocoder.springboot.lab30.rpc.dto.UserDTO;
+import org.apache.dubbo.config.annotation.Service;
+
+@Service(version = "${dubbo.provider.UserRpcService.version}")
+public class UserRpcServiceImpl implements UserRpcService {
+
+ @Override
+ public UserDTO get(Integer id) {
+ return new UserDTO().setId(id)
+ .setName("没有昵称:" + id)
+ .setGender(id % 2 + 1); // 1 - 男;2 - 女
+ }
+
+}
diff --git a/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/resources/application.yaml b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/resources/application.yaml
new file mode 100644
index 00000000..0beae3f8
--- /dev/null
+++ b/lab-30/lab-30-dubbo-annotations-nacos/user-rpc-service-provider-03/src/main/resources/application.yaml
@@ -0,0 +1,20 @@
+# dubbo 配置项,对应 DubboConfigurationProperties 配置类
+dubbo:
+ # Dubbo 应用配置
+ application:
+ name: user-service-provider # 应用名
+ # Dubbo 注册中心配
+ registry:
+ address: nacos://127.0.0.1:8848 # 注册中心地址。个鞥多注册中心,可见 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 毫秒,胖友可以根据自己业务修改
+ UserRpcService:
+ version: 1.0.0
+ # 配置扫描 Dubbo 自定义的 @Service 注解,暴露成 Dubbo 服务提供者
+ scan:
+ base-packages: cn.iocoder.springboot.lab30.rpc.service
diff --git a/lab-30/pom.xml b/lab-30/pom.xml
index 74a96a45..1843001b 100644
--- a/lab-30/pom.xml
+++ b/lab-30/pom.xml
@@ -14,6 +14,7 @@
lab-30-dubbo-xml-demo
lab-30-dubbo-annotations-demo
+ lab-30-dubbo-annotations-nacos