Dubbo-Spring-Boot

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuyu19911016520/article/details/82114683
1.dubbo分2种方式与项目集成,1.通过Spring配置方式,2.SpringBoot方式

dubbo架构图
这里写图片描述

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器
调用关系说明
  • 1.服务容器负责启动,加载,运行服务提供者。
  • 2.服务提供者在启动时,向注册中心注册自己提供的服务。
  • 3.服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 4.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
    服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
    服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
  • 5.Dubbo 架构具有以下几个特点,分别是连通性、健壮性、伸缩性、以及向未来架构的升级性。
2.前置条件,需先启动 zookeeper 与 dubbo-admin ,请先看官方文档
  • zookeeper的安装网上有很多,大致步骤是 1.解压zookeeper包,2.在conf目录下添加zoo.cfg配置文件,3.在bin目录下通过命令启动zkServer.cmd(linux下:./zkServer.sh start ),下载地址:链接:https://pan.baidu.com/s/1R2uIuYF3llsnFpCT7h-BxQ 密码:n2cl
  • dubbo-admin主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能,需通过maven,编译代码,得到dubbo-admin.jar包,编译时可以修改application.properties中的属性,下载地址:https://github.com/apache/incubator-dubbo-ops,进入根目录,执行:mvn clean package -Dmaven.test.skip=true 命令打包
3.建议上面的两种方式都创建个demo玩一下,我在第一种方式下通过eclipse下运行 服务提供者与消费者的java文件进行请求没有问题,但打包后启动时报错了
4.本篇分享通过 SpringBoot 来集成dubbo,dubbo官方开了一个dubbo-spring-boot的项目,我们只需要引入依赖与配置即可运行项目
  • 1.创建项目,用 IDEA 先创建一个java项目,在此项目下创建3个maven项目,再把这个java项目添加 Add Framework Support Maven支持
    dubbo-common:公共服务接口,定义服务接口,服务模型,服务异常,POJO等均放在 Common-API 包中
    dubbo-consumer:服务消费者,配置zookeeper地址与服务提供者信息后,调用服务接口
    dubbo-provider:服务提供者,对服务接口进行实现,配置暴露服务端口
    这里写图片描述
  • 2.按照官方文档,Dubbo Spring Boot 工程 中的步骤,对应的引入依赖,创建接口与实现,配置好服务提供者与消费者的配置信息,复制官方的代码就好
  • 3.启动zookeeper与dubbo-admin,启动项目,访问服务消费者
    这里写图片描述
  • 4.重点是打包,在项目目录下通过cmd窗口,注意:先在最外层根项目下进行mvn install,再打包dubbo-common,再服务提供者与消费者,直接通过IDEA的maven插件打包一直报错,不知道为什么。
  • 5.项目的依赖与引用关系,请查看我的源码,https://github.com/zhuyu19911016/spring-web/tree/master/dubbospringboot,不想创建项目的也可以下载源码,启动zookeeper后,通过上面第4步,直接打包或运行项目,访问消费者即可看到效果

启动服务提供者后,可以在dubbo-admin后台看到提供者信息
这里写图片描述

下面4个cmd窗口,分别是zookeeper、dubbo-admin、dubbo-provider、dubbo-consumer
这里写图片描述

最重要的是动手,跟着官方文档与源码和网上的教程创建个demo玩一玩
以上是单机版的dubbo服务,还有dubbo官方文档中开发时用到的高级功能还未体验,zookeeper集群多注册中心,dubbo-provider与dubbo-consumer多部署,负载均衡、分组聚合等等

跟着官方文档遇到问题的朋友可以看我的源码:https://github.com/zhuyu19911016/spring-web/tree/master/dubbospringboot

猜你喜欢

转载自blog.csdn.net/zhuyu19911016520/article/details/82114683