项目基础

京淘介绍

 

要求

  1. 项目在自己的电脑中做一遍
  2. 项目一定要个跟上

京淘项目概述

3.1 电商网站的特点

3.1.1 高并发

概念:在单位时间内,用户大量的访问服务器.

说明:

 

说明:例如淘宝的双11交易额特别的巨大.淘宝数据库的处理的峰值25.6/.

电商网站中,高并发是主要考虑的问题.

3.2 分布式

说明:分布式主要分为 1.分布式计算  2分布式系统

3.2.1 分布式计算

说明:一项任务交给多台服务器完成.

例子:一项任务如果由一个人完成需要10个小时.如果由10个人共同完成这项任务.仅需1个小时.(大数据)

3.2.2 分布式系统

说明:将系统按照功能模块进行拆分.拆分为不同的系统.完成不用的任务.

1.传统项目

 

2.分布式系统

分布式系统的作用:

  1. 对外统一.对内独立
  2. 大型项目构建时,内部会根据业务需求,划分为不同的子模块.不同的模块处理的业务不同.开发相对互补影响.极大的提供开发效率.
  3. 如果某项业务出现问题.影响的范围较小

3.2.3 集群

说明:通过多台服务器,处理的是相同的业务

图例:

 

说明:

  1. 采用集群的部署,可以有效的抗击高并发.
  2. 在集群部署中,会采用高可用的方式,目的让服务器尽可能的不”宕机”

总结:分布式项目也可以部署集群.让我们的后台更加的强大

3.2.4 海量数据

说明:由于软件行业的不断的发展,数据的积累量越来越多,如果实现快速的检索,分析.处理是现在电商网站面临的重大的难题.

(大数据) AI 区块链(概念)------征信问题 王欣

京淘架构设计

4.1 技能点介绍

4.1.1 功能模块划分

说明:京淘项目主要分为 2大支撑系统

序号

项目名称

主要作用

1

jt-manage

京淘后台管理系统 负责商品的更新和维护

2

jt-web

京淘前台系统,主要负责商品的展现

3

jt-cart

京淘购物车系统,负责用户购物车信息维护

4

jt-sso

京淘单点登陆系统,实现session数据共享

5

jt-order  

京淘订单系统,负责订单维护

6

jt-search

京淘项目的全文检索

7

jt-rabbitMQ

消息队列系统

8

jt-parent

负责jar包的管理和依赖

9

jt-common

管理工具类文件

 

4.1.2 京淘的技能点

说明:京淘的互联网项目包含了当下最新最热门的技术.

 

序号

知识点

重要程度

 

掌握程度

1

业务:商品分类、商品、前台、权限单点登录、购物车、订单、商品全文检索

★★★★★

1

熟练

2

Spring、SpringMVC、MyBatis主流框架

★★★

1

熟练

3

Maven 一键构建继承和聚合

★★

1

熟练

4

PowerDesinger表设计及优化

★★★★

3

会用

5

富客户端EasyUI、KindEditor图文控件

1

会用

6

RESTFul 访问方式

★★★★★

1

熟练

7

通用Mapper插件,自动生成调用代码

1

会用

8

Nginx 负载均衡/反向代理

★★★★★

1

精通

9

Tomcat集群

★★★

1

熟练

10

Linux/CentOS 操作系统

★★★

1

熟练

11

MySQL主从复制,Amoeba/mycat读写分离

★★★★★

3

精通

12

Redis 缓存数据库,分片,哨兵,集群高可用

★★★★★

1

精通

13

JSONP浏览器跨域

★★

2

会用

14

HttpClient系统间调用

★★★

1

熟练

15

石英钟定时任务

1

会用

16

RabbitMQ 消息队列

★★★

3

熟练

17

Lucene、Solr搜索

★★★★

3

熟练

18

Jsoup爬虫技术

★★★★

3

熟练

19

Dubbo框架

★★★★

4

熟练

20

Docker容器技术

★★★★

4

熟练

21

Druid阿里数据库连接池

★★★

4

熟练

 Maven

5.1 传统项目的问题

5.1.1 分析

  1. 传统项目的jar包需要专人来维护和编辑.(架构师)
  2. Jar包冲突问题比较麻烦
  3. 传统系统中打包发布也是问题(分布式项目打包更加麻烦)

5.2 Maven介绍

5.2.1 Maven介绍

说明:使用Maven可以一键构建项目,管理/更新/维护项目的工具

5.2.2 Maven下载

说明:

 

 

说明:使用Maven直接从官网根据自己的系统选择正确的版本

5.2.3 Maven安装

5.2.3.1 检测JDK

 

 

 

说明:如果修改完jdk后依然是1.8则需要进入控制面板中,卸载1.8JDK

5.2.4 配置Maven

1.Maven路径

 

2.添加maven变量

 

3.maven加入path

; %MAVEN_HOME%\bin

 

检测是否配置成功.重新打开cmd命令提示框

命令:mvn -version

如果出现图上的信息.表示Maven配置成功

5.2.5 Maven的重要组成部分

1.用户(USER) 使用Maven的调用者

2.本地仓库 用户需要的jar包保存到了本地(本机),默认的本地仓库的存储路径c:/user/.m2/reposipoory

3.中央仓库 位置在海外.在中央仓库中保存着现在主流的公司的全部的jar.下载时速度较慢

4.镜像 在国内相当于中央仓库的代理,并且速度很快 阿里云镜像/达内镜像

5.Settings配置文件 maven中属性配置文件 配置本地仓库/私服镜像

特点:maven是基于网络的!!!!.使用maven时要么使用网络,要么添加私服镜像!!!!

 

 

5.2.6 配置本地仓库

 

说明:将本地仓库的路径复制E:\software\mvn_repo.修改大约55行左右

 

2.添加私服镜像

 

说明:在培训期间使用达内私服镜像服务器.

5.2.7 复制settings文件

说明:settings配置文件存入m2下

 

${user.home}/.m2/settings.xml.

Maven默认访问的就是user级别.所以必须配置,否则无效

 

修改全局的settings文件

 

${maven.conf}/settings.xml

5.2.8 配置mavenjdk

说明:通过maven创建项目时,默认使用1.7JDK

配置:大约在settings文件的262行添加jdk的配置.作用可以通过maven创建项目时默认使用就是1.7

      <profile>
		<id>jdk17</id>
		<activation>
			<activeByDefault>true</activeByDefault>
			<jdk>1.7</jdk>
		</activation>
		<properties>
			<maven.compiler.source>1.7</maven.compiler.source>
			<maven.compiler.target>1.7</maven.compiler.target>
			<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
		</properties>
	</profile>

  

5.2.9 Maven如何实现自动的jar包依赖

问题:

  1. Maven是如何自动的依赖jar?
  2. Maven如何保证jar包文件不被篡改?

答案:

  1. 由于maven在进行jar包依赖时,会执行依赖的pom.xml文件,如果该文件中有自己的依赖.maven再次自动的通过坐标实现jar包的导入.

 

  1. 如何保证不背篡改

 

Eclipse整合Maven

6.1 环境配置

6.1.1 修改JDK

 

6.1.2 修改字符集编码

 

6.1.3 关闭校验

 

6.2 引入maven工具

6.2.1 导入maven

说明:添加maven工具后,maven打钩表示启动

 

6.2.2 引入settings文件

 

项目的拆分

7.1 项目的垂直拆分

7.1.1 垂直拆分

说明:根据不同的功能模块将模块系统化这样的拆分方式叫做垂直拆分.其实就是分布式的思想

7.1.2 分布式项目如何管理jar

问题:将模块进行系统化之后,每一个模块都是一个特定的系统.每个系统都需要自己的jar包文件.分布式系统如何统一管理jar

解决:

创建一个专门负责管理jar包的项目jt-parent.主要维护项目中所有公用的jar包文件(ssm)

7.1.3 分布式项目如何管理工具类

问题:分布式项目中,有一些工具类需要进行复用,.但是如果将每个工具类都单独写入项目则不方便维护.

解决:为工具类单独的创建项目jt-common.之后将jt-common打包,形成jar包文件.可以通过pom.xml文件直接依赖

补充说明:继承和依赖的区别

继承可以引用父类的全部的jar包文件.

依赖只能依赖特定的某个jar包文件.

7.1.4 简述分布式项目的注意项目

:

  1. 什么是分布式????

根据不同的业务模块将项目进行拆分.并且将模块系统化.会产生2个问题.1项目中的jar包如何维护.2项目中的工具类如何维护.

通过创建管理jar包的项目jt-parent项目.其他的项目只需要继承该项目即可.

创建工具类项目jt-common,其他的项目如果需要工具类引用,只需要依赖工具类即可.

Jt-parent/jt-common称之为项目的支持系统

构建京淘后台管理系统

8.1 Jt-parent

8.1.1 构建jt-parent

说明:jt-parent项目的作用主要管理jar包文件.并且项目类型为pom.

8.1.2 Maven的坐标

 

以上的三个信息共同构成了maven的坐标.

GroupId:id 一般是公司的名称

ArtifactId: 项目名称

Version: 项目的版本号

问题:中央仓库如何管理jar???

解答:Maven的中央仓库其实就是采用坐标的方式管理jar包文件

 

8.1.3 选择骨架

说明:通过骨架构建项目,其实就是maven提供的项目创建的模板.模板内包含了项目所需要的配置文件及文件夹.

1.选择骨架

 

2.定义坐标

 

3.修改pom

 

4.更新maven

 

说明:如果出现以上的报错信息,则需要更新maven项目

  1. 导入jt-parent的依赖包

说明:将课前资料中的jt-parent中的pom.xml文件导入后即可.

8.1.4 jt-parent打包

说明:如果jt-parent项目创建成功后需要手动的打包.runas-mvn install.

 

8.2 构建jt-common

8.2.1 选择骨架

 

8.2.2 定义坐标

 

8.2.3 继承jt-parent

 

8.2.4 引入工具类文件

说明:将课前资料中的jt-common中的工具类导入项目中.导入完成之后打包

 

 

补充:如果打包不成功,将本地仓库中的jt全部删除后重新打包

 

8.3 构建京淘后台管理系统

8.3.1 骨架的选择

 

8.3.2 定义坐标

 

8.3.3 修改JDK

说明:由于maven中自已依赖的JDK不完整,所以需要我们手动的修改.

 

 

8.3.4 继承parent

8.3.5 依赖工具类

 

引入tomcat插件

9.1 Tomcat中存在的问题

9.1.1 资源问题

说明:

1.如果使用本地的tomcat,那么需要定期清空webapp.否则项目启动会很久.

2.如果需要多个tomcat服务器则需要手动的修改端口号.8005 8080 8009

9.1.2 引入tomcat插件

说明:使用tomcat插件是在运行期开始绑定.插件版的tomcat可以做到无限次启动.只需要修改一个端口号即可8080

 

Tomcat插件引入

<!--引入tomcat插件 将原有的build删除 第8行  -->
  <build>
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<port>8091</port>
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
 </build>

  

9.2 绑定tomcat

9.2.1 新建build

说明:需要创建maven build

 

9.2.2 编辑插件应用

 

 

9.2.3 导入源码文件

 

9.2.4 检测字符集是否正确

 

 

9.2.5 端口占用报错

补充:如果端口占用,需要现关闭tomcat

 

posted @ 2018-03-13 11:19  项羽齐  阅读(980)  评论(0编辑  收藏  举报