版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuyu19911016520/article/details/82114683
1.dubbo分2种方式与项目集成,1.通过Spring配置方式,2.SpringBoot方式
- 1.Spring配置方式:https://github.com/apache/incubator-dubbo
- 2.SpringBoot方式:https://github.com/apache/incubator-dubbo-spring-boot-project
- 3.官方文档:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
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