本文记录了博主在Win10下搭建springboot2.2.1+dubbo2.7.4.1+zookeeper3.5.6的全过程,旨在帮助开发者快速搭建最新版的springboot+dubbo项目,文末附有本文demo项目源码,方便开发者快速投入开发。
dubbo原理不在累赘,请移步至此。 dubbo基本概念
安装Zookeeper
1. 下载bin结尾的tar
2. 解压文件,在根目录下打开conf文件夹,复制zoo_sample.log为zoo.log
3. 启动Zookeeper
2.1 打开 /根目录/bin
2.2 运行 zkServer.cmd
3. 常见错误:
3.1 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
带有bin名称的包才是我们需要的变异后的二进制包,下载时选择-bin结尾的包即可。
参考这篇博客
3.2 运行zkServer.cmd闪退,无任何错误信息
Windows下Zookeeper启动zkServer.cmd闪退问题的解决方案
在zkServer.cmd倒数第二行加入
pause
如图所示:
3.3 JAVA_HOME is incorrectly set
错误信息如图所示:
查看bin文件夹的几个.cmd文件,博主发现zkEnv.cmd有关于JAVA_HOME的检测,如图所示:
打开cmd,输入以下命令,查看JAVA_HOME
set
正确的JAVA_HOME配置应如图所示
win10配置JAVA_HOME环境变量
安装Dubbo
安装
1. 使用git clone源码
git clone https://github.com/apache/dubbo-admin.git
cd dubbo-admin
mvn clean package
cd dubbo-admin-distribution/target
java -jar dubbo-admin-0.1.jar
或者在github apache/dubbo-admin下载源码编译
在根目录打开cmd,输入指令:
mvn -s "C:\Users\developer\.m2\setting_aliyun.xml" -DskipTests clean package
cd dubbo-admin-distribution/target
java -jar dubbo-admin-0.1.jar
查看Dubbo Admin
http://localhost:8080
博主将端口修改为8081 修改端口。运行效果如图:
无元数据信息,请升级至Dubbo2.7及以上版本,或者查看application.properties中关于config center的配置,详见这里
应用名
global
配置内容
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
SpringBoot整合dubbo示例
一、创建父项目
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/>
</parent>
<groupId>per.vastzhang</groupId>
<artifactId>springboot_dubbo_demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>api</module>
<module>provider</module>
<module>consumer</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId