第一次搭建springboot+dubbo+zookeeper项目小结
Posted pgbblag
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次搭建springboot+dubbo+zookeeper项目小结相关的知识,希望对你有一定的参考价值。
第一次用IDEA搭建springboot+dubbo+zookeeper项目中碰到了一些问题,现在记录下来,
第一步:项目准备工作
工具IDEA,先下载安装zookeeper和dubbo
Zookeeper下载地址:https://zookeeper.apache.org/releases.html,我下载最新的release 3.5.7
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
下载下来文件,解压到相应文件夹,需要要做以下几件事
1、复制一份apache-zookeeper-3.5.7-binconfzoo_sample.cfg,放到旁边改名zoo.cfg
2、在zoo.cfg中增加节点 admin.serverPort=8888,这是因为zookeeper默认占用8080端口,不修改导致运行程序端口占用
3、在apache-zookeeper-3.5.7-binin的启动文件 zkserver.cmd中增加 "-Dzookeeper.admin.enableServer=false",也是为了解决端口占用问题
4、启动zookeeper程序等待
dubbo-2.6.0下载及安装
下载地址:github:https://github.com/apache/dubbo/tree/dubbo-2.6.0
注意:dubbo-2.6.1以后的版本不再有dubbo-admin
下载之后解压后拷贝dubbo-admin-2.6.0.war到 tomcat安装目录的webapps目录
- 在dubbo-2.6.0目录执行 mvn clean package -Dmaven.test.skip=true ;
- 启动Tomcat。如果Tomcat的默认端口为8080,建议修改下,比如改为8088,这样http://127.0.0.1:8088/dubbo-admin-2.6.0/
第二步:基于IDEA工具,springboot建立provider,customer,api等
名词:Spring initializr
Spring initializr 是Spring 官方提供的一个用来初始化一个Spring boot 项目的工具。在idea中,直接 File->New->Project, 在左侧就能看到Spring initializr, 点击Next 就可以选择组件。
创建spring initializr,可以直观手动勾选依赖,如果创建maven项目话,需要在pom文件夹自己添加依赖,适合网络环境差的情况下使用。
(一):选择新建project,在界面中选择Spring Initilazr点击Next:
(二)填上项目的基本信息点击next:
(三)选择在你的项目中需要引入的相关依赖以及springboot的版本,这里我选了2.2.5并勾选web便于测试(当然你可以根据你的需要勾选不同的依赖,很全基本上涵盖了开发过程中所用到的所有插件)点击next编辑器就会帮你自动将项目初始化并下载相关的jar包依赖:
项目名称起名:SpringbootDubbo
进入项目后我们可以先看看项目结构:
(四)同样的方法 建立 dubbo-api,dubbo-customer,dubbo-privider
代码不多 直接上图
运行效果:
小结:
项目搭建网上一堆指导,还是碰到了一些问题
1、先启动zookeeper,在启动dubbo-admin
2、先启动运行 provider,端口server.port=8091
3、在启动api,端口server.port=8092
4、最后启动运行 customer,端口server.port=8090
在配置文件properties 里 增加spring.main.allow-bean-definition-overriding=true
5、注意dubbo配置,格式检查,否则常出现配置文件找不到提示
6、注解@Service @Reference 请选择 dubbo提供的
以上是关于第一次搭建springboot+dubbo+zookeeper项目小结的主要内容,如果未能解决你的问题,请参考以下文章
二SpringBoot 整合 Dubbo 进阶,Provider 不使用 web 容器启动