SpringBoot+Dubbo+Zookeeper分布式项目练习
——java博客系统
由于一台服务器的能力有限,所以越来越多的大型项目采用分布式的布置方式,多台服务器共同去完成一个大型的集成服务。对分布式的练习还是很有必要的。
这个项目练习主要是使用SpringBoot、Dubbo和Zookeeper来完成一个分布式的项目练习,目标是多个服务器提供一套服务的多个模块,客户端通过网页进行数据的读取等功能。本项目是个人设计的一个练习项目,不可能一蹴而就的,需要多次的迭代,每次增加一些小功能,最后完成一个大项目。本文主要是项目的搭建和简单测试。
后续有很多都是这个系列的,感兴趣的朋友可以看看我后面的文章。
前提知识:
(现在或将来会用到)
javase、maven、SpringBoot(最好也要会Spring、SpringMVC、javaweb)、Mysql、Dubbo、Zookeeper、RPC等分布式技术和概念(基本就行,因为我也会的不是很深)、Redis…
使用工具:
idea、zookeeper3.6.2(请注意版本问题,如果这里的版本和maven版本不一致可能会有问题)、Redis-x64-3.2.100
步骤:
1.创建一个SpringBoot的父项目,并创建几个SpringBoot模块
创建时将所有模块的组名设置为同一个(如果模块创建后无法识别为maven项目,需要手动为其添加maven模块支持)
2.配置porm文件
这一步十分的关键,涉及到关键的依赖,而且要是porm文件配不好,各个模块可能无法相互引用。
父依赖:
<?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 https://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.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zhz</groupId>
<artifactId>bigprc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>bigprc</name>
<description>Demo project for Spring Boot</description>
<!--pom打包模式-->
<packaging>pom</packaging>
<properties>
<java.version>11</java.version>
</properties>
<modules>
<module>f-api</module>
<module>f-client</module>
<module>f-provider</module>
<module>f-common</module>
</modules>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
子依赖:(以f-client为例)
这里有两个依赖需要注意,一个是f-api,一个是f-common-coredependence(在f-common下),这两个都是自定义的模块,f-api中定义了接口,f-common-coredependence中设置了关键的依赖。
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion