Dubbo-Spring-Boot 拼搏现实的明天。 2022-05-15 08:20 143阅读 0赞 ###### 1.dubbo分2种方式与项目集成,1.通过Spring配置方式,2.SpringBoot方式 ###### * 1.Spring配置方式:[https://github.com/apache/incubator-dubbo][https_github.com_apache_incubator-dubbo] * 2.SpringBoot方式:[https://github.com/apache/incubator-dubbo-spring-boot-project][https_github.com_apache_incubator-dubbo-spring-boot-project] * 3.官方文档:[http://dubbo.apache.org/zh-cn/docs/user/quick-start.html][http_dubbo.apache.org_zh-cn_docs_user_quick-start.html] dubbo架构图 ![这里写图片描述][70] <table> <thead> <tr> <th>节点</th> <th>角色说明</th> </tr> </thead> <tbody> <tr> <td><code>Provider</code></td> <td>暴露服务的服务提供方</td> </tr> <tr> <td><code>Consumer</code></td> <td>调用远程服务的服务消费方</td> </tr> <tr> <td><code>Registry</code></td> <td>服务注册与发现的注册中心</td> </tr> <tr> <td><code>Monitor</code></td> <td>统计服务的调用次数和调用时间的监控中心</td> </tr> <tr> <td><code>Container</code></td> <td>服务运行容器</td> </tr> </tbody> </table> ###### 调用关系说明 ###### * 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][https_pan.baidu.com_s_1R2uIuYF3llsnFpCT7h-BxQ] 密码:n2cl * dubbo-admin主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能,需通过maven,编译代码,得到dubbo-admin.jar包,编译时可以修改application.properties中的属性,下载地址:[https://github.com/apache/incubator-dubbo-ops][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:服务提供者,对服务接口进行实现,配置暴露服务端口 ![这里写图片描述][70 1] * 2.按照官方文档,[Dubbo Spring Boot 工程][Dubbo Spring Boot] 中的步骤,对应的引入依赖,创建接口与实现,配置好服务提供者与消费者的配置信息,复制官方的代码就好 * 3.启动zookeeper与dubbo-admin,启动项目,访问服务消费者 ![这里写图片描述][70 2] * 4.重点是打包,在项目目录下通过cmd窗口,注意:先在最外层根项目下进行mvn install,再打包dubbo-common,再服务提供者与消费者,直接通过IDEA的maven插件打包一直报错,不知道为什么。 * 5.项目的依赖与引用关系,请查看我的源码,[https://github.com/zhuyu19911016/spring-web/tree/master/dubbospringboot][https_github.com_zhuyu19911016_spring-web_tree_master_dubbospringboot],不想创建项目的也可以下载源码,启动zookeeper后,通过上面第4步,直接打包或运行项目,访问消费者即可看到效果 启动服务提供者后,可以在dubbo-admin后台看到提供者信息 ![这里写图片描述][70 3] 下面4个cmd窗口,分别是zookeeper、dubbo-admin、dubbo-provider、dubbo-consumer ![这里写图片描述][70 4] 最重要的是动手,跟着官方文档与源码和网上的教程创建个demo玩一玩 以上是单机版的dubbo服务,还有dubbo官方文档中开发时用到的高级功能还未体验,zookeeper集群多注册中心,dubbo-provider与dubbo-consumer多部署,负载均衡、分组聚合等等 跟着官方文档遇到问题的朋友可以看我的源码:[https://github.com/zhuyu19911016/spring-web/tree/master/dubbospringboot][https_github.com_zhuyu19911016_spring-web_tree_master_dubbospringboot] [https_github.com_apache_incubator-dubbo]: https://github.com/apache/incubator-dubbo [https_github.com_apache_incubator-dubbo-spring-boot-project]: https://github.com/apache/incubator-dubbo-spring-boot-project [http_dubbo.apache.org_zh-cn_docs_user_quick-start.html]: http://dubbo.apache.org/zh-cn/docs/user/quick-start.html [70]: /images/20220515/fa1208f0ed5c48f490f04d5ea756cefd.png [https_pan.baidu.com_s_1R2uIuYF3llsnFpCT7h-BxQ]: https://pan.baidu.com/s/1R2uIuYF3llsnFpCT7h-BxQ [https_github.com_apache_incubator-dubbo-ops]: https://github.com/apache/incubator-dubbo-ops [70 1]: /images/20220515/ba67f8961c1f40e7bddf66b52ea2c359.png [Dubbo Spring Boot]: https://github.com/apache/incubator-dubbo-spring-boot-project/blob/master/README_CN.md [70 2]: /images/20220515/beeecd8ce41342afa994d13cb31c1a6c.png [https_github.com_zhuyu19911016_spring-web_tree_master_dubbospringboot]: https://github.com/zhuyu19911016/spring-web/tree/master/dubbospringboot [70 3]: /images/20220515/ed88500c3d9846f4be222aa818cd6380.png [70 4]: /images/20220515/f870bb454dce4561b037657941edad83.png
还没有评论,来说两句吧...