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 + 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 + 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 + 1.8 + + + + + + \ No newline at end of file