day69_淘淘商城專案_02
- 課程計劃
- 第二天:商品列表功能實現
- 1、功能分析
- 2、服務中介軟體Dubbo
- 3、SSM框架整合+Zookeeper
- 4、Dubbo的Admin管理平臺
- 5、後臺商品列表查詢功能實現
- 5、dubbo監控中心的搭建
1、功能分析
1.1、後臺系統所用的技術
- 框架:Spring + SpringMVC + Mybatis + Dubbo
- 前端:EasyUI
- 資料庫:MySQL
1.2、建立資料庫
- 1、安裝mysql資料庫,要求5.5以上版本。
- 2、在mysql中建立一個taotao資料庫。
- 3、將建立資料庫的指令碼taotao.sql匯入到taotao中。
1.3、Mybatis逆向工程
- 使用mybatis官方提供的mybatis-generator生成pojo、mapper介面及對映檔案。
- 並且將pojo放到toatao-manager-pojo工程中。
- 將mapper介面及對映檔案放到taotao-manager-dao工程中。
- 注意1:因為涉及到各個工程(系統)之間來回傳遞物件,所以使用時需要對涉及到的POJO實現序列化介面。
- 我們發現mybatis的外掛,有一個可以自動給所有pojo實現序列化介面(example除外)
- 我們發現mybatis的外掛,有一個可以自動給所有pojo實現序列化介面(example除外)
- 注意2:如果生成的pojo能夠有toString()的重寫會給開發、除錯帶來很大的方便,所以我們也將生成的pojo重寫toString()方法。
- 同樣使用mybatis的外掛。
- 即我們在使用Mybatis逆向工程的時候,在其配置檔案generatorConfig.xml中配置下:
- 注意1:因為涉及到各個工程(系統)之間來回傳遞物件,所以使用時需要對涉及到的POJO實現序列化介面。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 配置生成pojo的序列化的外掛,mybatis支援很多外掛,這些外掛都在 org.mybatis.generator.plugins包下 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<!--配置生成pojo的tostring()方法的外掛,mybatis支援很多外掛,這些外掛都在 org.mybatis.generator.plugins包下 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
<commentGenerator>
<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/taotao" userId="root" password="root">
</jdbcConnection>
<!-- 預設false時,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer
當為 true時,把JDBC DECIMAL 和 NUMERIC 型別解析為java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO類的位置 -->
<javaModelGenerator targetPackage="com.taotao.pojo" targetProject=".\src">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
<!-- 從資料庫返回的值被清理前後的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper對映檔案生成的位置 -->
<sqlMapGenerator targetPackage="com.taotao.mapper" targetProject=".\src">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper介面生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.taotao.mapper" targetProject=".\src">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定資料庫表 -->
<table schema="" tableName="tb_content"></table>
<table schema="" tableName="tb_content_category"></table>
<table schema="" tableName="tb_item"></table>
<table schema="" tableName="tb_item_cat"></table>
<table schema="" tableName="tb_item_desc"></table>
<table schema="" tableName="tb_item_param"></table>
<table schema="" tableName="tb_item_param_item"></table>
<table schema="" tableName="tb_order"></table>
<table schema="" tableName="tb_order_item"></table>
<table schema="" tableName="tb_order_shipping"></table>
<table schema="" tableName="tb_user"></table>
</context>
</generatorConfiguration>
1.4、系統間通訊問題
1.4.1、分析
由於淘淘商城是基於soa的架構,表現層和服務層是不同的工程。所以要實現商品列表查詢需要兩個系統之間進行通訊。
如何實現遠端通訊?
- 1、使用Webservice:
效率不高
,它是基於soap協議(html+xml
)。專案中不推薦使用。優點是:跨語言、跨平臺。適用於兩個公司之間。 - 2、使用Restful形式的服務:
http+json
。很多專案中應用。如果服務越來越多,服務與服務之間的呼叫關係複雜,呼叫服務的URL管理複雜,什麼時候新增機器難以確定。 需要治療服務。適用於中小型企業。 - 3、使用Dubbo:使用
RPC協議
進行遠端呼叫,直接使用socket通訊
。傳輸效率高
,並且可以統計出系統之間的呼叫關係、呼叫次數,管理服務。適用於大型企業。缺點:不能跨語言。只能java語言。
2、Dubbo
2.1、什麼是dubbo
最新中文網址:https://dubbo.incubator.apache.org/zh-cn/index.html
DUBBO是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點。
隨著網際網路的發展,網站應用的規模不斷擴大,常規的垂直應用架構
已無法應對,分散式服務架構
以及流動計算架構
勢在必行,亟需一個治理系統
確保架構有條不紊的演進。
- 單一應用架構
當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。
此時,用於簡化增刪改查工作量的資料訪問框架(ORM)
是關鍵。 - 垂直應用架構
當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。
此時,用於加速前端頁面開發的Web框架(MVC)
是關鍵。 - 分散式服務架構
當垂直應用越來越多,應用之間互動不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。
此時,用於提高業務複用及整合的分散式服務框架(RPC)
是關鍵。 - 流動計算架構
當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個排程中心基於訪問壓力實時管理叢集容量,提高叢集利用率。
此時,用於提高機器利用率的資源排程和治理中心(SOA)
是關鍵。 - Dubbo就是
資源排程和治理中心的管理工具
。 - Dubbo 就是類似於webservice的關於系統之間通訊的框架,並可以
統計
和管理服務
直接的呼叫情況(包括服務被誰呼叫了,呼叫的次數是如何,以及服務的使用狀況)。
2.2、Dubbo的架構
- Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高效能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向介面的遠端方法呼叫,智慧容錯和負載均衡,以及服務自動註冊和發現。
- 節點角色說明:
- Provider: 暴露服務的服務提供方。
- Consumer: 呼叫遠端服務的服務消費方。
- Registry: 服務註冊與發現的註冊中心。
- Monitor: 統計服務的呼叫次調和呼叫時間的監控中心。
- Container: 服務執行容器。
- 呼叫關係說明:
- 0、服務容器負責啟動,載入,執行服務提供者。
- 1、服務提供者在啟動時,向註冊中心註冊自己提供的服務。
- 2、服務消費者在啟動時,向註冊中心訂閱自己所需的服務。
- 3、註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於`長連線`推送變更資料給消費者。
-
相關推薦
day69_淘淘商城專案_02
課程計劃 第二天:商品列表功能實現 1、功能分析 2、服務中介軟體Dubbo 3、SSM框架整合+Zookeeper 4、Dubbo的Admin管理平臺 5、後臺商品列表查詢功能實現 5、dubbo監控中心的搭建 1、
day69_淘淘商城專案_02_dubbo介紹 + dubbo框架整合 + zookeeper + 商品列表查詢實現 + 分頁 + 逆向工程_匠心筆記
淘淘商城專案_02 1、功能分析 1.1、後臺系統所用的技術 1.2、建立資料庫 1.3、Mybatis逆向工程 1.4、系統間通訊問題 1.4.1、分析
day68_淘淘商城專案_01
課程計劃 第一天: 1、電商行業的背景介紹--電子商務 2、淘淘商城的系統架構 a) 功能介紹 b) 架構講解 3、工程搭建--後臺工程 a) 使用maven搭建工程
day71_淘淘商城專案_04_匠心筆記
課程計劃 1、門戶(前臺)系統的搭建 2、顯示前臺商城首頁 3、CMS內容管理系統的介紹 4、CMS內容管理系統的建立 5、CMS內容管理系統的實現 a) 內容分類管理 b) 內容管理
day72_淘淘商城專案_05_匠心筆記
課程計劃: 第五天 1、首頁輪播圖的展示 2、首頁大廣告展示流程圖 3、Redis的安裝及使用 4、Redis叢集的搭建 5、向業務邏輯中新增快取 6、Jedis的使用(redis的客戶端) 7、快取同步
day74_淘淘商城專案_07_solrcloud搭建 + zookeeper叢集搭建 + 搜尋功能切換到叢集版 + httpclient學習 + 全域性異常處理器 + 附錄_匠心筆記
課程計劃 1、solr叢集的搭建 2、使用solrJ管理solr叢集 3、把搜尋功能切換到solr叢集版 4、httpclient 5、全域性異常處理 1、什麼是SolrCloud SolrCloud(solr 雲)是Solr提供的分散式搜尋
淘淘商城專案_同步索引庫問題分析 + ActiveMQ介紹/安裝/使用 + ActiveMQ整合spring + 使用ActiveMQ實現新增商品後同步索引庫_匠心筆記
文章目錄 1、同步索引庫問題分析 2、ActiveM的介紹 2.1、什麼是ActiveMQ 2.2、ActiveMQ的訊息形式 3、ActiveMQ的安裝 3.1、安裝環境 3.2、安裝步驟
SSM專案之---淘淘商城(第一天)
注:xx商城是培訓網站(itcast)出的SSM培訓視訊,使用的技術還是現在比較靠前的技術~原始碼會在以後陸續放出~想要原始碼以及視訊的小夥伴可以加本人qq,,272273581 (注:由於本人最近考研,所以不經常看qq,大家想要原始碼視訊的話,可以直接發郵件給我,我看到之後第一時間
day79_淘淘商城專案_12_購物車流程 + 商城購物車系統的搭建 + 商城購物車系統的實現分析 + 購物車實現增刪改查_匠心筆記
課程計劃 1、購物車的流程 2、購物車的實現 a) 登入狀態下的購物車實現 b) 未登入狀態下的購物車實現 1、購物車流程 1.1、以前的購物車流程 使用者將商品新增到購物車時,判斷使用者是否登入,如果已經登入將購物車放入se
day79_淘淘商城專案_商城購物車系統實現三種方案總結
1、商城購物車系統實現的三種方案 1.1、session 將購物車直接存放到與使用者相關的session中。優點: 程式碼實現超級簡單。缺點: 購物車存在session當中,如果session銷燬,購物車就沒有了。(session只存在於一次會話中。) 使用者未登入的時候不能新增購物車
day81_淘淘商城專案_14_專案釋出 + Linux下安裝mysql + tomcat熱部署 + 資料庫分庫分表 + Mycat學習_匠心筆記
第十四天: 1、Linux上mysql的安裝 2、系統的部署 3、mycat的介紹 4、專案總結 5、面試中的問題 1、開發流程淺解 2、專案釋出前的準備 1、測試 a) 本地單元測試 b) 測試環境測試(1,2,3,4,5) c) 使用
idea給現有web專案建立子maven web模組專案--搭建流程(以淘淘商城為例)
maven web專案主要搭建流程: 1、用任意Java開發工具ide中maven外掛(或其他外掛)建立父子web專案骨架 2、完善web專案的目錄結構(如果以下骨架已自動建好,忽略此步驟) src/main/java src/main/
day82_淘淘商城_15_專案的總結 + 專案中的問題_匠心筆記
專案的總結 第一天: 學習電商行業的背景,電商模式:B2B、B2C、B2B2C、O2O。分散式,叢集的理解,系統的架構,基於SSO的架構。使用Maven搭建後臺工程,及SVN的使用。 第二天: dubbo的學習和使用,系統和系統之間通訊的中介軟體。webservice :系統之間通訊。應
淘淘商城_專案異常總結
1.xml配置檔案報錯 解決方法: 2。沒有啟動zookeeper錯誤 3.未找到註冊中心的service 4.啟動taotao-manager-web 報錯
淘淘商城分散式電商系統專案總結
淘淘商城是採用分散式架構部署的一個大型網上商城系統,類似於京東商城。本系統分前臺系統和後臺系統。前臺系統主要負責商城的頁面的顯示功能,這裡採用的面向服務的方式,pc端手機端只負責顯示頁面,業務邏輯都在服務層實現,客戶端呼叫服務端介面來實現顯示功能。 在前臺系統中主要分為:客戶端:系統前臺頁面顯示系
淘淘商城系列(一)—— 搭建專案工程(三)
1、使用maven的好處 使用maven管理工程。 1.Jar包的管理 2.工程之間的依賴管理 3.自動打包 4.統一的版本的控制 2、後臺管理系統工程搭建分析 Maven的常見打包方式:jar、wa
day70_淘淘商城專案_03
課程計劃 第三天: 1、商品類目選擇 2、圖片上傳 a) 圖片伺服器FastDFS b) 圖片上傳功能實現 3、富文字編輯器的使用KindEditor 4、商品新增功能完成 1、商品類目選擇 1.1、功能分析 1.1.1、資料庫表結構設計 pare
day73_淘淘商城專案_06_solr索引庫搭建 + solr搜尋功能實現 + 圖片顯示等問題解決_匠心筆記
課程計劃 第六天: 1、搜尋工程的搭建 2、linux下solr服務的搭建 3、測試使用solrJ管理索引庫 4、把商品資料匯入到索引庫中(後臺功能) 5、商品搜尋功能實現(前臺功能) 1、搜尋工程的搭建 要實現搜尋功能,需要搭建solr服務、搜尋服務工程、搜尋系統(表
帶你逐步深入瞭解SSM框架——淘淘商城專案之框架整合,後臺系統搭建
1. 今日計劃 1、 SSM框架整合 2、 mybatis逆向工程 3、 商品列表 4、 商品列表分頁處理 2. SSM框架整合 2.1. 後臺系統所用的技術 框架:Spring + SpringMVC +Mybatis 前端:EasyUI 資料庫:mysql
淘淘商城26_單點登入SSO_01專案的搭建及配置
一、什麼是單點登入 1. 我們要做的單點登入 taotao-portal-web taotao-search-web taotao-item-web 這個三個專案,都得用到使用者, 三個tomcat 意味要有三臺伺服器