From 97d88691b4a6e9a8e554b7da3217841015417550 Mon Sep 17 00:00:00 2001
From: cicadasmile <1327880701@qq.com>
Date: Sun, 7 Jul 2019 19:51:44 +0800
Subject: [PATCH] =?UTF-8?q?SpringBoot2.0=20=E6=95=B4=E5=90=88=20Dubbo?=
=?UTF-8?q?=E6=A1=86=E6=9E=B6=20,=E5=AE=9E=E7=8E=B0RPC=E6=9C=8D=E5=8A=A1?=
=?UTF-8?q?=E8=BF=9C=E7=A8=8B=E8=B0=83=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 5 +-
pom.xml | 2 +
ware-dubbo-parent/block-dubbo-common/pom.xml | 15 ++++
.../java/com/boot/common/DubboService.java | 9 +++
.../main/java/com/boot/common/UserEntity.java | 28 ++++++++
.../java/com/boot/common/VersionService.java | 5 ++
ware-dubbo-parent/block-dubbo-consume/pom.xml | 45 ++++++++++++
.../com/boot/consume/ConsumeApplication.java | 13 ++++
.../consume/controller/DubboController.java | 69 +++++++++++++++++++
.../boot/consume/service/ConsumeService.java | 28 ++++++++
.../consume/service/VersionServiceImpl.java | 24 +++++++
.../src/main/resources/application.yml | 21 ++++++
.../block-dubbo-provider/pom.xml | 45 ++++++++++++
.../com/boot/consume/ProviderApplication.java | 19 +++++
.../consume/service/DubboServiceImpl.java | 42 +++++++++++
.../boot/consume/service/VersionOneImpl.java | 14 ++++
.../boot/consume/service/VersionTwoImpl.java | 14 ++++
.../src/main/resources/application.yml | 23 +++++++
ware-dubbo-parent/pom.xml | 56 +++++++++++++++
19 files changed, 476 insertions(+), 1 deletion(-)
create mode 100644 ware-dubbo-parent/block-dubbo-common/pom.xml
create mode 100644 ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/DubboService.java
create mode 100644 ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/UserEntity.java
create mode 100644 ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/VersionService.java
create mode 100644 ware-dubbo-parent/block-dubbo-consume/pom.xml
create mode 100644 ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/ConsumeApplication.java
create mode 100644 ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/controller/DubboController.java
create mode 100644 ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/ConsumeService.java
create mode 100644 ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/VersionServiceImpl.java
create mode 100644 ware-dubbo-parent/block-dubbo-consume/src/main/resources/application.yml
create mode 100644 ware-dubbo-parent/block-dubbo-provider/pom.xml
create mode 100644 ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/ProviderApplication.java
create mode 100644 ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/DubboServiceImpl.java
create mode 100644 ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionOneImpl.java
create mode 100644 ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionTwoImpl.java
create mode 100644 ware-dubbo-parent/block-dubbo-provider/src/main/resources/application.yml
create mode 100644 ware-dubbo-parent/pom.xml
diff --git a/README.md b/README.md
index 567c9d4..9782d7a 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,12 @@
5、SpringBoot2.0 整合 QuartJob ,实现定时器实时管理
-
+
6、SpringBoot2.0 整合 Redis集群 ,实现消息队列场景
+
+7、SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用
+
持续更新中...
## 项目简介
diff --git a/pom.xml b/pom.xml
index 4ccb44c..e390a94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,8 @@
ware-swagger-two
ware-redis-cluster
+
+ ware-dubbo-parent
diff --git a/ware-dubbo-parent/block-dubbo-common/pom.xml b/ware-dubbo-parent/block-dubbo-common/pom.xml
new file mode 100644
index 0000000..333d244
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-common/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ ware-dubbo-parent
+ com.dubbo.parent
+ 1.0-SNAPSHOT
+
+ 4.0.0
+ com.dubbo.common
+ block-dubbo-common
+ jar
+
+
\ No newline at end of file
diff --git a/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/DubboService.java b/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/DubboService.java
new file mode 100644
index 0000000..ae24ace
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/DubboService.java
@@ -0,0 +1,9 @@
+package com.boot.common;
+
+public interface DubboService {
+ String getInfo (String param) ;
+
+ UserEntity getUserInfo (UserEntity userEntity) ;
+
+ String timeOut (Integer time) ;
+}
diff --git a/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/UserEntity.java b/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/UserEntity.java
new file mode 100644
index 0000000..864e0ac
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/UserEntity.java
@@ -0,0 +1,28 @@
+package com.boot.common;
+
+import java.io.Serializable;
+
+public class UserEntity implements Serializable {
+ private Integer id ;
+ private String userName ;
+
+ @Override
+ public String toString() {
+ return "UserEntity{id=" + id +", userName='" + userName + "}";
+ }
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/VersionService.java b/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/VersionService.java
new file mode 100644
index 0000000..797ba47
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-common/src/main/java/com/boot/common/VersionService.java
@@ -0,0 +1,5 @@
+package com.boot.common;
+
+public interface VersionService {
+ String getVersion () ;
+}
diff --git a/ware-dubbo-parent/block-dubbo-consume/pom.xml b/ware-dubbo-parent/block-dubbo-consume/pom.xml
new file mode 100644
index 0000000..dc36829
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-consume/pom.xml
@@ -0,0 +1,45 @@
+
+
+
+ ware-dubbo-parent
+ com.dubbo.parent
+ 1.0-SNAPSHOT
+
+ 4.0.0
+ com.dubbo.consume
+ block-dubbo-consume
+ jar
+
+
+
+ com.dubbo.common
+ block-dubbo-common
+ 1.0-SNAPSHOT
+
+
+
+
+
+ ${project.artifactId}
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+
+ 1.8
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/ConsumeApplication.java b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/ConsumeApplication.java
new file mode 100644
index 0000000..62e78b4
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/ConsumeApplication.java
@@ -0,0 +1,13 @@
+package com.boot.consume;
+
+import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@EnableDubbo
+@SpringBootApplication
+public class ConsumeApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(ConsumeApplication.class,args) ;
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/controller/DubboController.java b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/controller/DubboController.java
new file mode 100644
index 0000000..0413659
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/controller/DubboController.java
@@ -0,0 +1,69 @@
+package com.boot.consume.controller;
+
+import com.boot.common.UserEntity;
+import com.boot.consume.service.ConsumeService;
+import com.boot.consume.service.VersionServiceImpl;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+/*
+
+http://localhost:7008/getParam
+响应参数:[Hello,Cicada]
+
+http://localhost:7008/getUserInfo
+响应参数:{"id":1,"userName":"知了"}
+
+ */
+@RestController
+public class DubboController {
+
+ @Resource
+ private ConsumeService consumeService ;
+ @Resource
+ private VersionServiceImpl versionService1 ;
+ @Resource
+ private VersionServiceImpl versionService2 ;
+
+ @RequestMapping("/getParam")
+ public String getParam (){
+ return consumeService.getInfo("知了...") ;
+ }
+
+ @RequestMapping("/getUserInfo")
+ public UserEntity getUserInfo (){
+ UserEntity userEntity = new UserEntity() ;
+ userEntity.setId(1);
+ userEntity.setUserName("知了");
+ return consumeService.getUserInfo(userEntity) ;
+ }
+
+ /**
+ * 抛出超时异常
+ * com.alibaba.dubbo.remoting.TimeoutException
+ */
+ @RequestMapping("/timeOut")
+ public String timeOut (){
+ return consumeService.timeOut(2000) ;
+ }
+
+ /**
+ * 测试接口版本
+ * 启动日志
+ * has been built.
+ */
+ @RequestMapping("/getVersion1")
+ public String getVersion1 (){
+ return versionService1.getVersion() ;
+ }
+
+ @RequestMapping("/getVersion2")
+ public String getVersion2 (){
+ return versionService2.version2() ;
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/ConsumeService.java b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/ConsumeService.java
new file mode 100644
index 0000000..d8a6236
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/ConsumeService.java
@@ -0,0 +1,28 @@
+package com.boot.consume.service;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.boot.common.DubboService;
+import com.boot.common.UserEntity;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ConsumeService implements DubboService {
+
+ @Reference
+ private DubboService dubboService ;
+
+ @Override
+ public String getInfo(String param) {
+ return dubboService.getInfo(param);
+ }
+
+ @Override
+ public UserEntity getUserInfo(UserEntity userEntity) {
+ return dubboService.getUserInfo(userEntity);
+ }
+
+ @Override
+ public String timeOut(Integer time) {
+ return dubboService.timeOut(time);
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/VersionServiceImpl.java b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/VersionServiceImpl.java
new file mode 100644
index 0000000..71912fc
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-consume/src/main/java/com/boot/consume/service/VersionServiceImpl.java
@@ -0,0 +1,24 @@
+package com.boot.consume.service;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.boot.common.VersionService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class VersionServiceImpl implements VersionService {
+
+ @Reference(version = "1.0.0")
+ private VersionService versionService1 ;
+
+ @Reference(version = "2.0.0")
+ private VersionService versionService2 ;
+
+ @Override
+ public String getVersion() {
+ return versionService1.getVersion();
+ }
+
+ public String version2 (){
+ return versionService2.getVersion() ;
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-consume/src/main/resources/application.yml b/ware-dubbo-parent/block-dubbo-consume/src/main/resources/application.yml
new file mode 100644
index 0000000..7bb1cc6
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-consume/src/main/resources/application.yml
@@ -0,0 +1,21 @@
+server:
+ tomcat:
+ uri-encoding: UTF-8
+ max-threads: 1000
+ min-spare-threads: 30
+ port: 7008
+ connection-timeout: 5000ms
+
+spring:
+ application:
+ name: block-dubbo-consume
+# Dubbo 配置文件
+dubbo:
+ application:
+ name: block-dubbo-consume
+ registry:
+ address: 127.0.0.1:2181
+ protocol: zookeeper
+ # 基于服务消费方配置超时
+ consumer:
+ timeout: 1000
\ No newline at end of file
diff --git a/ware-dubbo-parent/block-dubbo-provider/pom.xml b/ware-dubbo-parent/block-dubbo-provider/pom.xml
new file mode 100644
index 0000000..1711b15
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-provider/pom.xml
@@ -0,0 +1,45 @@
+
+
+
+ ware-dubbo-parent
+ com.dubbo.parent
+ 1.0-SNAPSHOT
+
+ 4.0.0
+ com.dubbo.provider
+ block-dubbo-provider
+ jar
+
+
+
+ com.dubbo.common
+ block-dubbo-common
+ 1.0-SNAPSHOT
+
+
+
+
+
+ ${project.artifactId}
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+
+ 1.8
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/ProviderApplication.java b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/ProviderApplication.java
new file mode 100644
index 0000000..afb0ab6
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/ProviderApplication.java
@@ -0,0 +1,19 @@
+package com.boot.consume;
+
+import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+/*
+[zk: localhost:2181(CONNECTED) 0] ls /
+[dubbo, zookeeper]
+[zk: localhost:2181(CONNECTED) 1] ls /dubbo
+[com.boot.common.DubboService]
+[zk: localhost:2181(CONNECTED) 2]
+ */
+@EnableDubbo
+@SpringBootApplication
+public class ProviderApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(ProviderApplication.class,args) ;
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/DubboServiceImpl.java b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/DubboServiceImpl.java
new file mode 100644
index 0000000..ad40254
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/DubboServiceImpl.java
@@ -0,0 +1,42 @@
+package com.boot.consume.service;
+
+import com.boot.common.DubboService;
+import com.alibaba.dubbo.config.annotation.Service;
+import com.boot.common.UserEntity;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+/*
+ * 注意这里的注解
+ * com.alibaba.dubbo.config.annotation.Service
+ */
+@Service(timeout = 2000)
+@Component
+public class DubboServiceImpl implements DubboService {
+
+ private static Logger LOGGER = LoggerFactory.getLogger(DubboServiceImpl.class) ;
+
+ @Override
+ public String getInfo(String param) {
+ LOGGER.info("字符参数:{}",param);
+ return "[Hello,Cicada]";
+ }
+
+ @Override
+ public UserEntity getUserInfo(UserEntity userEntity) {
+ LOGGER.info("实体类参数:{}",userEntity);
+ return userEntity;
+ }
+
+ @Override
+ public String timeOut(Integer time) {
+ LOGGER.info("超时测试:{}",time);
+ try{
+ Thread.sleep(3000);
+ } catch (Exception e){
+ e.printStackTrace();
+ return "超时了..." ;
+ }
+ return "SUCCESS";
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionOneImpl.java b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionOneImpl.java
new file mode 100644
index 0000000..f194bf5
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionOneImpl.java
@@ -0,0 +1,14 @@
+package com.boot.consume.service;
+
+import com.alibaba.dubbo.config.annotation.Service;
+import com.boot.common.VersionService;
+import org.springframework.stereotype.Component;
+
+@Service(version = "1.0.0")
+@Component
+public class VersionOneImpl implements VersionService {
+ @Override
+ public String getVersion() {
+ return "{当前版本:1.0.0}";
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionTwoImpl.java b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionTwoImpl.java
new file mode 100644
index 0000000..4ac5964
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-provider/src/main/java/com/boot/consume/service/VersionTwoImpl.java
@@ -0,0 +1,14 @@
+package com.boot.consume.service;
+
+import com.alibaba.dubbo.config.annotation.Service;
+import com.boot.common.VersionService;
+import org.springframework.stereotype.Component;
+
+@Service(version = "2.0.0")
+@Component
+public class VersionTwoImpl implements VersionService {
+ @Override
+ public String getVersion() {
+ return "{当前版本:2.0.0}";
+ }
+}
diff --git a/ware-dubbo-parent/block-dubbo-provider/src/main/resources/application.yml b/ware-dubbo-parent/block-dubbo-provider/src/main/resources/application.yml
new file mode 100644
index 0000000..79b5a84
--- /dev/null
+++ b/ware-dubbo-parent/block-dubbo-provider/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+server:
+ tomcat:
+ uri-encoding: UTF-8
+ max-threads: 1000
+ min-spare-threads: 30
+ port: 7007
+ connection-timeout: 5000ms
+
+spring:
+ application:
+ name: block-dubbo-provider
+# Dubbo 配置文件
+dubbo:
+ application:
+ name: block-dubbo-provider
+ registry:
+ address: 127.0.0.1:2181
+ protocol: zookeeper
+ protocol:
+ name: dubbo
+ port: 20880
+ scan:
+ base-packages: com.boot.consume
\ No newline at end of file
diff --git a/ware-dubbo-parent/pom.xml b/ware-dubbo-parent/pom.xml
new file mode 100644
index 0000000..ee7fbde
--- /dev/null
+++ b/ware-dubbo-parent/pom.xml
@@ -0,0 +1,56 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starters
+ 2.1.3.RELEASE
+
+ 4.0.0
+ com.dubbo.parent
+ ware-dubbo-parent
+ 1.0-SNAPSHOT
+ pom
+
+ block-dubbo-consume
+ block-dubbo-provider
+ block-dubbo-common
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.alibaba.boot
+ dubbo-spring-boot-starter
+ 0.2.0
+
+
+
+
+
+ ${project.artifactId}
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+
+ 1.8
+
+
+
+
+
+
\ No newline at end of file