四、项目介绍
- springboot版本:2.1.1.RELEASE
- zookeeper版本:3.4.14
- dubbo版本:2.7.3
- mybtais-plus版本:3.0.6
- 数据库:mysql-8
- 构建工具:maven
- 服务模块:用户中心、商品中心、订单中心
五、代码实践
5.1、初始化数据库
首先在 mysql 客户端,创建3个数据库,分别是:dianshang-user
、dianshang-platform
、dianshang-business
。
- 在 dianshang-user 数据库中,创建用户表 tb_user,并初始化数据
在 dianshang-platform 数据库中,创建商品表 tb_product,并初始化数据
在 dianshang-platform 数据库中,创建订单表 tb_order、订单详情表 tb_order_detail
5.2、创建工程
数据库表设计完成之后,在 IDEA 下创建一个名称为dianshang
的Springboot
工程。
最终的目录如下图:
目录结构说明:
- dianshang-common:主要存放一些公共工具库,所有的服务都可以依赖使用
- dianshang-business:订单中心,其中
api
模块主要是提供dubbo服务暴露接口,provider
模块是一个springboot
项目,提供服务处理操作 - dianshang-user:用户中心,其中
api
模块和provider
模块,设计与之类似 - dianshang-platform:商品中心,其中
api
模块和provider
模块,设计与之类似
在父类pom
文件中加入dubbo
和zookeeper
客户端,所有依赖的项目都可以使用。
<!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency> <!-- Dubbo Spring Boot Starter --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</version> </dependency> <!-- 因为使用的是 zookeeper 作为注册中心,所以要添加 zookeeper 依赖 --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.13</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <!--使用curator 作为zookeeper客户端--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.2.0</version> </dependency>
温馨提示:小编在搭建环境的时候,发现一个坑,工程中依赖的zookeeper
版本与服务器的版本,需要尽量一致,例如,本例中zookeeper
服务器的版本是3.4.14
,那么在依赖zookeeper
文件库的时候,也尽量保持一致,如果依赖3.5.x
版本的zookeeper
,项目在启动的时候会各种妖魔鬼怪的报错!