电商项目搭建(一):架构概述&详细操作指南

基本架构拆分如下:

在这里插入图片描述
其中最为关键的几个部分:

支付系统:对外暴露接口,但是内在集成了N多系统

搜索系统:需要利用搜索引擎,比如Lurence,进行全文检索,可以用solr elasticsearch 来简化搜索的开发

秒杀系统:需要独立成一个服务,避免高并发影响其他子系统

广告系统&内容系统:技术含量不高,但是是垂直电商区分水平电商的关键

大概的结构如下:

shop-parent
|—shop-goods-api(商品系统接口)
|—shop-goods-server(商品系统)
|—shop-order-api(订单系统接口)
|—shop-order-server(订单系统)
|—shop-member-api(会员系统接口)
|—shop-member-server(会员系统)
|—shop-mgrsite(后台管理界面)
|—shop-mobile(提供移动端的接口项目)
|—shop-scheduler(定时任务项目)
|—shop-common(公共项目)

其中scheduler定时任务项目,不能集成到其他系统中,只是单独做一个系统出来就OK(且不集群),这样就可以保证定时任务只会执行一次,避免性能的浪费

以上说明完成,接下来就应该做具体的搭建了

首先需要说明的是,这里使用的工具是STS,后面不再赘述

1.准备工作

说明:首先我们想要所有的项目到放在一个文件夹下,所以

首先选择视图模式为Working Sets

在这里插入图片描述

接下来创建在Configure Working Set…中创建对应的文件夹
在这里插入图片描述

在这里插入图片描述

附带说明:

使用STS的同时必须要记得开启代码提示,如何开启代码提示

具体如何开启代码提示:https://blog.csdn.net/baidu_32739019/article/details/64121023

如果以上工作都完成了,那么基本准备也就完成了

  1. 基本架构搭建

基本思路:

首先搭建架构之前,先看看基本的架构图:

在这里插入图片描述

这里我们先根据shop-goods这条线搭建基本的架构:

shop-parent --> shop-common —>shop-goods-api —>> shop-goods-server

----------------------------------------------------------------------->> shop-mgrsite

2.1 搭建父项目

首先新建一个Maven项目:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2 搭建子项目

电商项目搭建(一):架构概述&详细操作指南_第1张图片

在这里插入图片描述

打包方式说明:

由于我们这里的架构是做微服务的架构,因此spring boot 必不可少,spring boot的项目都有一个特点,就是web服务要尽量打成JAR包

具体原因是:

springboot 内部集成了tomcat的服务器,WEB应用的JAR可以直接被加载,

但是war包就不一样了,需要Jetty或者tomcat容器去加载,那么必然会引起Jar冲突

在这里插入图片描述
看到下面的module生成了,就说明成功了
在这里插入图片描述

接下来就用相同的方法,完成下面其余Module的建立

电商项目搭建(一):架构概述&详细操作指南_第2张图片

3.建立关联

回到我们之间的架构图,可以发现:

一、 所有的项目都是parent的子项目

二、 项目之间彼此有依赖关系

从Goods线来看:

  • shop-goods-api是依赖shop-common
  • 而shop-goods-server和shop-mgrsite都是依赖shop-goods-api的

附:为什么两个项目会去依赖:shop-goods-api?

原因是:shop-goods-server和shop-mgrsite有共同的domain和接口类,为了方便统一管理,故抽出做管理

以上内容在本人的ZooKeeper: 在CentOS7中配置Zookeeper并搭建测试环境有详细的阐述:

https://blog.csdn.net/fenghuoliuxing990124/article/details/84979590

在这里插入图片描述
回到正题,我们开始建立对应的依赖,由于上面要建立依赖,于是在parent中:

在这里插入图片描述
在shop-goods-api中依赖shop-common:

<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.0modelVersion>
	<parent>
		<groupId>cn.csdn.shopgroupId>
		<artifactId>shop_demo-parentartifactId>
		<version>1.0.0version>
	parent>
	<artifactId>shop_demo-goods-apiartifactId>
	<name>shop_demo-goods-apiname>

	<dependencies>
		<dependency>
			<groupId>cn.csdn.shopgroupId>
			<artifactId>shop_demp-commonartifactId>
		dependency>
	dependencies>

project>

附:可能会出现的问题:missing artifact

如果出现此类的问题:简单来说:无解

请重新删除出现问题的module后(包括硬盘),重新new一个module来解决该问题

建议不要在网上找答案(浪费时间),因为maven的依赖是个玄学问题

4.搭建SpringBoot环境

由于我们要搭建的是微服务,下一步就是为搭建微服务提供基本的SpringBoot环境

首先我们这里为parent导入的父依赖是:


<parent>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-parentartifactId>
	<version>1.5.1.RELEASEversion>
parent>

在导入子项目所需依赖之前,先点击spring-boot-starter-parent跳入依赖中,

复制下面这段话,并将JDK的版本从1.6修改为1.8

	<properties>
		<java.version>1.8java.version>
		<resource.delimiter>@resource.delimiter> 
		<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
		<maven.compiler.source>${java.version}maven.compiler.source>
		<maven.compiler.target>${java.version}maven.compiler.target>
	properties>

接下来我们要为子项目导入必要的依赖:


<dependency>
    <groupId>com.gitee.regergroupId>
    <artifactId>spring-boot-starter-dubboartifactId>
    <version>1.0.10version>
dependency>

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>

<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
dependency>


<dependency>
    <groupId>com.alibabagroupId>
    <artifactId>fastjsonartifactId>
    <version>1.2.7version>
dependency>


<dependency>
    <groupId>commons-iogroupId>
    <artifactId>commons-ioartifactId>
    <version>2.4version>
dependency>


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-data-redisartifactId>
dependency>


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-activemqartifactId>
dependency>

剩下将下面的依赖导入parent的dependencyManagement


<dependency>
	<groupId>com.alibabagroupId>
	<artifactId>druidartifactId>
	<version>1.0.25version>
dependency>


<dependency>
	<groupId>org.mybatis.spring.bootgroupId>
	<artifactId>mybatis-spring-boot-starterartifactId>
	<version>1.2.0version>
dependency>

OK,至此电商项目基本的架构就完成了,下一步就是逐步完善了

你可能感兴趣的:(电商项目)