1. 項目介紹
衆所周知,目前主流的電商企業就是 “淘寶” 和 “京東” 了,跟個風,本電商項目叫 《淘東電商項目》 ,項目採用目前主流的SpringBoot + SpringCloud
來構建,實現一套完整的微服務解決方案。
2. 項目架構圖
3. 環境需求
由於本項目對環境的要求非常高
建議電腦配置:
- 在CPU I5
- 內存32GB
- 或者電腦採用集羣化部署
開發環境要求:
- JDK統一要求:JDK1.8
- Maven統一管理jar
- 統一採用Docker安裝軟件
- 編碼統一採用UTF-8
- 開發工具IDE或者Eclipse
4. 技術選型
4.1 SpringBoot2.x+SpringCloud2.x構建微服務電商項目
- 使用SpringCloud Eureka作爲註冊中心,實現服務治理
- 使用Zuul網關框架管理服務請求入口
- 使用Ribbon實現本地負載均衡器和Feign HTTP客戶端調用工具
- 使用Hystrix服務保護框架(服務降級、隔離、熔斷、限流)
- 使用消息總線Stream RabbitMQ和Kafka
- 微服務API接口安全控制和單點登錄系統CAS+JWT+OAuth2.0
4.2 分佈式基礎設施構建
- 分佈式任務調度平臺XXL-JOB
- 分佈式日誌採集系統ELK
- 分佈式事務解決方案LCN
- 分佈式鎖解決方案Zookeeper、Redis
- 分佈式配置中心(攜程Apollo)
- 高併發分佈式全局ID生成(雪花算法)
- 分佈式Session框架Spring-Session
- 分佈式服務追蹤與調用鏈Zipkin
4.3 項目運營與部署環境
- 分佈式設施環境,統一採用Docker安裝
- 使用jenkins+docker+k8s實現自動部署
- 微服務API管理ApiSwagger
- 使用GitLab代碼管理
- 統一採用第三方雲數據庫
- 使用七牛雲服務器對靜態資源實現加速
5. 項目目錄結構
l____ taodong-shop-basics(分佈式基礎設施)
l________ taodong-shop-basics-eureka(註冊中心)
l________ taodong-shop-basics-apollo-config-server(分佈式配置中心)
l________ taodong-shop-basics-elk-kafka(分佈式日誌採集系統)
l________ taodong-shop-basics-lcn(分佈式事務解決框架)
l________ taodong-shop-basics-xxljob(分佈式任務調度平臺)
l________ taodong-shop-basics-xxlsso-server(分佈式單點登錄系統)
l________ taodong-shop-basics-zipkin(分佈式調用鏈系統)
l________ taodong-shop-basics-zuul(網關)
l____ taodong-shop-service-api(接口層)
l________ taodong-shop-service-api-goods(商品服務接口)
l________ taodong-shop-service-api-member(會員服務接口)
l________ taodong-shop-service-api-order(訂單服務接口)
l________ taodong-shop-service-api-pay(支付服務接口)
l________ taodong-shop-service-api-search(搜索服務接口)
l________ taodong-shop-service-api-spike(秒殺服務接口)
l________ taodong-shop-service-api-sso(單點登錄服務接口)
l________ taodong-shop-service-api-weixin(微信服務接口)
l________ taodong-shop-service-api-integral(積分服務接口)
l________ taodong-shop-service-api-auth(OAuth授權驗證服務接口)
l____ taodong-shop-service(服務層)
l________ taodong-shop-service-goods(商品服務)
l________ taodong-shop-service-member(會員服務)
l________ taodong-shop-service-order(訂單服務)
l________ taodong-shop-service-pay(支付服務)
l________ taodong-shop-service-search(搜索服務)
l________ taodong-shop-service-spike(秒殺服務)
l________ taodong-shop-service-sso(單點登錄服務)
l________ taodong-shop-service-weixin(微信服務)
l________ taodong-shop-service-integral(積分服務)
l________ taodong-shop-service-auth(OAuth授權驗證服務)
l____ taodong-shop-portal(門戶)
l________ taodong-shop-portal-cms(管理系統)
l________ taodong-shop-portal-search(搜索系統)
l________ taodong-shop-portal-spike(秒殺系統)
l________ taodong-shop-portal-sso(秒殺系統)
l________ taodong-shop-portal-web(門戶系統)
l________ taodong-shop-portal-pay-web(支付系統)
l____ taodong-shop-api-dto(DTO)
l________ taodong-shop-api-item-dto(商戶服務DTO)
l________ taodong-shop-api-member-dto(會員服務DTO)
l________ taodong-shop-api-order-dto(訂單服務DTO)
l________ taodong-shop-api-pay-dto(支付服務DTO)
l________ taodong-shop-api-search-dto(搜索服務DTO)
l________ taodong-shop-api-spike-dto(秒殺服務DTO)
l________ taodong-shop-api-sso-dto(單點登錄服務DTO)
l________ taodong-shop-api-weixin-dto(微信服務DTO)
l____ taodong-shop-common(通用框架)
l________ taodong-shop-common-core(核心工具類)
l________ taodong-shop-common-web-core(web核心工具類)
l________ taodong-shop-common-xxlsso-core(單點登錄系統核心工具類)
l____ taodong-shop-pay-plugin(支付插件)
l________ taodong-shop-union-plugin(銀聯支付插件)
l________ taodong-shop-alipay-plugin(支付寶支付插件)
6. 功能實現
6.1 項目立項&基礎設施搭建
- 《淘東電商項目(01) - 需求討論與技術選型》
- 《淘東電商項目(02) - 項目結構初定》
- 《淘東電商項目(03) - 父類配置》
- 《淘東電商項目(04) - 註冊中心及Feign遠程調用》
- 《淘東電商項目(05) - Swagger及網關統一管理API》
- 《淘東電商項目(06) - Linux固定IP設置以及安裝Docker》
- 《淘東電商項目(07) -GitLab簡介以及Docker部署》
- 《淘東電商項目(08) -Docker搭建Maven私服倉庫》
- 《淘東電商項目(09) -Maven私服的上傳與下載詳解》
- 《淘東電商項目(10) -Apollo分佈式配置中心管理application.yml》
- 《淘東電商項目(11) -Apollo分佈式配置中心管理Swagger》
6.2 微信公衆號&註冊功能
- 《淘東電商項目(12) -搭建企業級微信公衆號》
- 《淘東電商項目(13) -項目整合WxJava》
- 《淘東電商項目(14) -公衆號獲取註冊碼功能》
- 《淘東電商項目(15) -項目配置信息分類(Apollo Namespace命名空間)》
- 《淘東電商項目(16) -會員註冊功能》
- 《淘東電商項目(17) -DTO接口細分》
- 《淘東電商項目(18) -全局異常捕獲》
- 《淘東電商項目(19) -日誌打印》
6.3 會員唯一登錄功能
- 《淘東電商項目(20) -會員唯一登錄》
- 《淘東電商項目(21) -Redis如何與數據庫狀態保持一致?》
- 《淘東電商項目(22) -Canal數據同步框架》
- 《淘東電商項目(23) -門戶界面》
- 《淘東電商項目(24) -獲取驗證碼功能》
- 《淘東電商項目(25) -門戶註冊功能》
- 《淘東電商項目(26) -門戶登錄功能》
- 《淘東電商項目(27) -門戶登出功能》
- 《淘東電商項目(28) -QQ授權登錄實現思路》
- 《淘東電商項目(29) -動靜分離的實現思路》
- 《淘東電商項目(30) -解決分佈式Session共享問題》
6.4 會員SSO單點登錄功能
- 《淘東電商項目(31) -SSO單點登錄(XXL-SSO案例)》
- 《淘東電商項目(32) -SSO單點登錄(集成SSO認證服務)》
- 《淘東電商項目(33) -SSO單點登錄(改造SSO認證服務登錄界面)》
- 《淘東電商項目(34) -SSO單點登錄(Client端集成)》
- 《淘東電商項目(35) -SSO單點登錄(登錄功能完善)》
- 《淘東電商項目(36) -SSO單點登錄(退出功能)》
- 《淘東電商項目(37) -SSO單點登錄(高可用實現思路)》
6.4 分佈式日誌採集
- 《淘東電商項目(38) -Docker下安裝ES&Kibana(一次填完所有的坑)》
- 《淘東電商項目(39) -商品搜索服務數據庫設計》
- 《淘東電商項目(40) -Docker下安裝Logstash(一次填完所有的坑)》
- 《淘東電商項目(41) -利用Logstash自動同步數據庫內容到ES(超詳細)》
- 《淘東電商項目(42) -利用Logstash自動同步數據庫內容到ES(多文件方式)》
- 《淘東電商項目(43) -MQ與Logstash實現數據庫同步到ES的區別》
- 《淘東電商項目(44) -Docker下搭建ElasticSearch集羣》
- 《淘東電商項目(45) -Docker下Kibana與Logstash的ES集羣配置(一次填完所有的坑)》
- 《淘東電商項目(46) -商品搜索服務功能的實現》
- 《淘東電商項目(47) -商品搜索服務功能的實現(集成拼音分詞器)》
- 《淘東電商項目(48) -ELK+Kafka分佈式日誌收集(原理篇)》
- 《淘東電商項目(49) -ELK+Kafka分佈式日誌收集(docker下搭建kafka)》
- 《淘東電商項目(50) -ELK+Kafka分佈式日誌收集(實現篇)》
- 《淘東電商項目(51) -全局異常日誌採集(ELK+Kafka)》
6.5 聚合支付
- 《淘東電商項目(52) -聚合支付開篇》
- 《淘東電商項目(53) -銀聯支付案例源碼分析》
- 《淘東電商項目(54) -銀聯支付案例(同步與異步)》
- 《淘東電商項目(55) -支付系統核心表設計》
- 《淘東電商項目(56) -支付系統分佈式事務的解決方案》
- 《淘東電商項目(57) -聚合支付(支付令牌接口)》
- 《淘東電商項目(58) -聚合支付(基於設計模式自動跳轉支付接口)》
- 《淘東電商項目(59) -聚合支付(集成銀聯支付)》
- 《淘東電商項目(60) -聚合支付(集成支付寶)》
- 《淘東電商項目(61) -聚合支付(基於模板方法設計模式管理支付回調)》
- 《淘東電商項目(62) -聚合支付(基於模板方法設計模式管理支付回調-支付寶)》
- 《淘東電商項目(63) -聚合支付(多線程日誌收集)》
- 《淘東電商項目(64) -聚合支付(XXL-JOB任務調度平臺整合)》
- 《淘東電商項目(65) -聚合支付(異步對賬)》
- 《淘東電商項目(66) -聚合支付(基於RabbitMQ解決分佈式事務-積分場景)》
6.6 互聯網安全架構
- 《淘東電商項目(67) -互聯網安全架構設計(方法論)》
- 《淘東電商項目(68) -互聯網安全架構設計(黑名單攔截及MD5加簽)》
- 《淘東電商項目(69) -互聯網安全架構設計(XSS攻擊防禦)》
- 《淘東電商項目(70) -互聯網安全架構設計(搭建開放平臺-OAuth)》
- 《淘東電商項目(71) -互聯網安全架構設計(網關驗證AccessToken)》
- 《淘東電商項目(72) -互聯網安全架構設計(責任鏈模式重構網關流程)》