專案基礎

項羽齊發表於2018-03-13

京淘介紹

 

要求

  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

 

相關文章