微服务:SpringBoot整合Dubbo+Zookeeper

环境准备:
jdk 1.8
springboot 1.5.9
dubbo 1.0

1.首先新建一个空的工程 (工程名为springboot-dubbo)

微服务:SpringBoot整合Dubbo+Zookeeper

建好以后工程结构如下图所示

微服务:SpringBoot整合Dubbo+Zookeeper

2.首先我们先创建服务提供者(以售票业务为例)

微服务:SpringBoot整合Dubbo+Zookeeper

3.选择springboot快速创建向导构建项目

微服务:SpringBoot整合Dubbo+Zookeeper
微服务:SpringBoot整合Dubbo+Zookeeper
微服务:SpringBoot整合Dubbo+Zookeeper

接下来就一路下一步就行,工程结构如下:

微服务:SpringBoot整合Dubbo+Zookeeper

4.在提供者的项目里面新建一个TicketService,提供售票方法

微服务:SpringBoot整合Dubbo+Zookeeper

5.再创建一个服务消费者的子工程 步骤跟刚才一样就不再多说

微服务:SpringBoot整合Dubbo+Zookeeper

6.在User的项目里面新建一个UserService,如果我们想在这使用提供者项目里面的TicketService,那么就需要使用RPC远程调用框架,进行远程通讯

(1)先在提供者项目的pom.xml引入依赖

     <!-- 引入dubbo依赖 -->
       <dependency>
           <groupId>com.alibaba.boot</groupId>
           <artifactId>dubbo-spring-boot-starter</artifactId>
           <version>0.1.0</version>
      </dependency>
     <!-- 引入zookeeper客户端工具 -->
      <dependency>
           <groupId>com.github.sgroschupf</groupId>
           <artifactId>zkclient</artifactId>
          <version>0.1</version>
      </dependency>

(2)在提供者项目的application.properties配置文件中配置

 dubbo.application.name=provider-ticket #当前应用的名字

 dubbo.registry.address=zookeeper://192.168.0.103:2181   #虚拟机的ip路径  2181为端口号 需要先在虚拟机上安装zookeeper、

 dubbo.scan.base-packages=com.dream.providerticket.service #要扫描的包

(3)在TicketServiceImpl.class中加@Service和@Component注解,@Service要导bubbo的包,因为需要把服务注册到注册中心,@Component是将类放在spring容器中便于管理

注意:Dubbo中的@Service注解只能标注到接口或具体实现类上面
微服务:SpringBoot整合Dubbo+Zookeeper

(4)接下来启动提供者项目

微服务:SpringBoot整合Dubbo+Zookeeper

7.同样我们在消费者项目里面引入dubbo和zookeeper的依赖(同上),在消费者项目application.properties配置文件中配置如下:

  dubbo.application.name=user  #当前应用的名字

  dubbo.registry.address=zookeeper://192.168.0.103:2181  #虚拟机的ip路径  2181为端口号 需要先在虚拟机上安装zookeeper、

9.在消费者项目里面创建TicketService接口 路径要和提供者项目的一样,也可以复制过来,如下:

微服务:SpringBoot整合Dubbo+Zookeeper

10.在UserService.class中引用TicketServce,并加上@Reference注解

微服务:SpringBoot整合Dubbo+Zookeeper
微服务:SpringBoot整合Dubbo+Zookeeper

12.编写一个hello方法,远程调用服务提供者的getTicket()方法

微服务:SpringBoot整合Dubbo+Zookeeper

13.最后在服务消费者项目里进行单元测试

注意:服务提供者项目不能关闭服务
微服务:SpringBoot整合Dubbo+Zookeeper

大功告成!!!!!

总结:Dubbo是阿里巴巴开源的分布式服务框架,现在由apache公司在维护,就目前来说,dubbo还是非常火的,但是由于SpringCloud的问世,老杨预计Spring全家桶的时代将会占领市场,因为springcloud提供了一整套微服务架构的解决方案,这是与Dubbo最大的不同。我会在后续给同学们更新SpringBoot整合SpringCloud的文章,请大家持续关注哦!有任何问题可以在评论区提出。谢谢大家!