微服务:SpringBoot整合Dubbo+Zookeeper

环境准备:
jdk 1.8
springboot 1.5.9
dubbo 1.0

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

微服务:SpringBoot整合Dubbo+Zookeeper_第1张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第2张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第3张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第4张图片
微服务:SpringBoot整合Dubbo+Zookeeper_第5张图片
微服务:SpringBoot整合Dubbo+Zookeeper_第6张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第7张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第8张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第9张图片

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

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

     
       
           com.alibaba.boot
           dubbo-spring-boot-starter
           0.1.0
      
     
      
           com.github.sgroschupf
           zkclient
          0.1
      

(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_第10张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第11张图片

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_第12张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第13张图片
微服务:SpringBoot整合Dubbo+Zookeeper_第14张图片

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

微服务:SpringBoot整合Dubbo+Zookeeper_第15张图片

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

注意:服务提供者项目不能关闭服务
微服务:SpringBoot整合Dubbo+Zookeeper_第16张图片

大功告成!!!!!

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

你可能感兴趣的:(微服务架构)