電商項目技術站盤點

1、技術架構

 

2、系統架構

 3、技術說明

3.1spring cloud :微服務搭建,按照業務進行拆分

  • changgou_gateway
  網關模塊,根據網站的規模和需要,可以將綜合邏輯相關的服務用網關路由組合到一起。在這裏還可以做鑑權和限流相關操作。
  • changgou_service
  微服務模塊,該模塊用於存放所有獨立的微服務工程。
  • changgou_service_api
  對應工程的JavaBean、Feign、以及Hystrix配置,該工程主要對外提供依賴。
  • changgou_transaction_fescar
  分佈式事務模塊,將分佈式事務抽取到該工程中,任何工程如需要使用分佈式事務,只需依賴該工程即可。
  • changgou_web
 web服務工程,對應功能模塊如需要調用多個微服務,可以將他們寫入到該模塊中,例如網站後臺、網站前臺等

3.2技術點摘要

  • FastDFS:分部式文件系統,對圖片等文件進行管理,實現文件的上傳下載,可以進行限流【漏桶算法】
  • JWT:實現微服務鑑權(JSON Web Token(JWT)是一個非常輕巧的規範。這個規範允許我們使用JWT在用戶和服務器之間傳遞安全可靠的信息。一個JWT實際上就是一個字符串,它由三部分組成,頭部、載荷與簽名。)
  • OpenResty:封裝了Nginx,並且提供了Lua擴展,大大提升了Nginx對併發處理的能,10K-1000K  Lua->廣告緩存操作
  • canal:用來監控數據庫數據的變化,從而獲得新增數據,或者修改的數據,應用場景一,數據庫的同步備份;應用場景二,監控數據修改,將數據同步到緩存中
  • elasticsearch:基於Lucene的搜索服務器,用Java語言開發,提供分佈式多用戶能力全文搜索
  • SpringSecurity Oauth2.0:實現單點登錄,使用公鑰加密,私鑰解密的方式,進行微服務之間的權限認證
  • 對接微信支付:微信支付開發文檔,XML進行信息傳輸;利用微信傳輸的固定字段,來區分秒殺隊列
  • rabbitMQ:利用死信隊列進行  超時訂單處理
  • 商品秒殺:將商品用定時任務按照時間段緩存到redis中,用redis的incr解決冪等問題
  • 流量削峯:採用隊列多線程的方式處理流量削峯
  • 冪等問題場景:①用戶點擊按鈕重複下單②消息隊列廣播消息某個服務沒成功,重複發送該消息後,重複消費問題③RPC請求以爲消息沒成功,重新發送重試的時候
  • 分佈式事務:事務的特性,事務的傳播行爲,事務的隔離級別,本地事務,CAP定理,分佈式解決方案:①2段提交(XA)②三段提交(TCC)③RocketMQ事務消息④seata(Alibaba)
  • redis集羣:使用crc16 算法,再分配哈希槽,進行消息存儲,主節點掛掉超過半數集羣不可用(主節點數爲奇數個);哨兵機制;redis的持久化RDB和AOF,緩存擊穿,緩存雪崩,採用三次緩存(nginx-redis-mybatis二級緩存)canal進行數據同步。

 

3.3講義地址

https://gitee.com/wangfandi/changgou/tree/master

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