商城項目回顧

第一天:
1、電商行業的背景。互聯網行業工資高。
2、電商模式:b2b、b2c、c2c、o2o
3、項目架構:
    1)集羣
    2)分佈式
    3)基於soa架構
4、宜立方商城的系統架構。
5、工程搭建。
    maven管理工程。
    父工程
    聚合工程
    模塊
    工程的繼承、依賴。
6、ssm框架整合。
7、svn的使用
第二天:
1、dubbo,服務治理工具。實現系統之間通信。
    1)服務提供者
    2)服務消費者
    3)註冊中心,使用zookeeper實現,相當於房產中介。
    4)監控中心。
2、工程改造。改造爲基於soa架構的工程。
3、商品列表的查詢。
    1)EasyUI的DataGrid控件。
    2)mybatis的分頁插件。
第三天、第四天:
商品添加:
1、商品分類選擇
    1)EasyUITree控件。異步加載。
2、商品圖片。實現圖片上傳。
    1)圖片服務器
        (1)FastDFS保存圖片
            Tracker,相當於註冊中心的作用,關鍵服務器集羣。
            Storage,保存文件的服務器。
        (2)訪問圖片http服務器,推薦使用nginx
            a.靜態資源的訪問。配置server可以。
                a)通過端口區分不同的server
                b)通過域名區分不同的server
            b.反向代理
                proxy_pass http://upstream_name;
                需要配置upstream節點。
                節點中有應用服務的地址列表。
            c.負載均衡
                需要配置upstream節點中配置多個服務器就可以實現負載均衡
                調整每個服務器的權重。
    2)圖片上傳的實現
        (1)FastDFS的java客戶端
        (2)使用KindEditor的多圖片上傳插件。
3、富文本編輯器的使用
    KindEditor。
4、商品添加。
第五天
1、商城首頁展示。
2、頁面內容動態展示,需要cms系統。
    1)內容分類管理
        樹形結構。
    2)內容管理
        一個內容分類下對應一個內容列表。
3、商品首頁動態展示。
    從數據庫中取內容列表,根據內容分類id查詢。
第六天
向業務邏輯添加緩存
1、使用redis做緩存
    1)string
    2)hash
    3)list
    4)set
    5)SortedSet
2、redis集羣
    1)沒有代理層。
    2)投票容錯
    3)客戶端連接任意節點即可。
    4)slot槽0-16383
3、jedis客戶端。
    1)JedisPool
    3)JedisCluster
4、向業務邏輯中添加緩存。
5、緩存同步。
第七天:
搜索功能實現
1、solr服務搭建。
2、配置業務域。中文分析器的配置。
3、把商品數據導入到索引庫
    solr的客戶端:solrJ
4、搜索功能實現。
    使用solrJ實現搜索。
第八天
solrCloud的搭建
1、zookeeper集羣
    推薦集羣中應該是奇數節點。
2、solr集羣
    配置文件統一管理。把配置文件上傳到zookeeper。
    索引庫分片。
3、solrJ連接集羣。
    單機版:HttpSolrServer
    集羣:CloudSolrServer
        1)zookeeper的地址列表
        2)設置DefaultCollection屬性。
4、搜索功能切換到集羣版。
第九天
1、使用MQ實現系統之間通信
Activemq,支持jms規範。
2、通信方式
    queue
    topic
3、Activemq整合spring
    發送消息:JmsTemplate
    接收消息:
        1)實現MessageListener接口
        2)配置MessageListenerContainer
3、添加商品同步索引庫
第十天
商品詳情頁面
1、動態展示
jsp+redis
緩存需要有過期時間,提供緩存利用率。
2、網頁靜態化freemarker
    1)模板
        基於jsp改造。
    2)數據
        推薦使用map實現
3、靜態化方案
    1、mq發送消息
    2、接收到消息,生成靜態頁面
    3、nginx訪問靜態頁面。
第十一天:
sso系統:
主要解決的是Session共享的問題。
1、使用redis管理Session。(保存前把密碼設爲null)
1)key:token
2)value:用戶信息
3)可以需要設置有效期。
4)需要把token保存到cookie中。(保存前把密碼設爲null)

2、根據token取用戶信息
1)從cookie中取token
2)到redis中查詢用戶信息。
3)更新key的過期時間。

 

第十二天
購物車
1、未登錄:使用cookie保存購物車數據
2、登錄後:把購物車數據保存到redis。
2、購物車合併,應該以服務端的購物車爲準。

第十三天:
訂單系統
1、訂單號生成。使用redis的incr
2、mycat。

第十四天:
系統部署

項目總結

4.5.    電商活動倒計時方案:
1、確定一個基準時間。可以使用一個sql語句從數據庫中取出一個當前時間。SELECT NOW();
2、活動開始的時間是固定的。
3、使用活動開始時間-基準時間可以計算出一個秒爲單位的數值。
4、在redis中設置一個key(活動開始標識)。設置key的過期時間爲第三步計算出來的時間。
5、展示頁面的時候取出key的有效時間。Ttl命令。使用js倒計時。
6、一旦活動開始的key失效,說明活動開始。
7、需要在活動的邏輯中,先判斷活動是否開始。

4.6.    秒殺方案:
1、把商品的數量放到redis中。
2、秒殺時使用decr命令對商品數量減一。如果不是負數說明搶到。
3、一旦返回數值變爲0說明商品已售完。

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章