電商網站
訪問量大
數據量大
併發高
有一定的業務複雜性技術點豐富
涉及安全方面
工程架構(分佈式應用架構)
各個應用獨立分層使用rpc實現web與service,service與service的互相調用提高代碼複用性
項目架構
1)工程結構
Maven爲基礎 對項目進行分層架構
2)項目架構
面向服務的分佈式架構(SOA)
技術棧
二、分佈式工程搭建
三、Dubbo和zookeeper
四、筆記
1.新建user項目(用來提供用戶服務)
C:\Windows\System32\drivers\etc
修改hosts文件 將本地 locahost 變爲 user.gmall.com
刷新配置
私用ngix服務器
2.通用mapper的整合
使用框架tk.mapper
添加pom.xml 依賴
接口繼承mapper<>泛型 可以去除@Mapper
成功生成增刪改查方法
注意 使用時要添加
主鍵返回策略
Gmall-parent 父依賴創建
1)用maven創建 gmall-parent 工程
2)新建其他項目模塊(子模塊)
3)Gmall-parent 依賴基於 springboot 1.5
4)在gmall-parment中定義整個項目的技術棧架構版本管理
Gmall-api
1)使用maven創建一個gmall-api工程
2)引入tk通用mapper(映射類)
3)將xxxService 接口和所有bean類放到api中
4)抽取service serivceImpl mapper **Mapper.xml 修改路徑
Gmall-util
1)項目中的通用框架,是所有應用工程引入的包
springBoot common-lans common-beanutils
2)基於SOA的架構理念項目分爲web前端controller
Jsp thymeleaf cookie工具類
3)基於SOA的架構理念項目分爲web後端service
Mybaties redis
拆分成分佈式架構
SOA面向服務(以dubbo爲基礎)
1)Dubbo的SOA工作原理
2)Dubbo與springcloud區別在於dubbo由自己的協議通訊,sc是由http協議(rest風格)
3)Dubbo有一個註冊中心的客戶端時時同步註冊中心的服務信息
4)dubbo有一個javaweb的監控中心 負責監控服務的註冊信息甚至可以配置負載均衡
@## 將項目改造爲dubbo分佈式框架
1.將user項目拆分爲user-service 和 user-web
2.引入 dubbo 框架
3.將dubbo框架引入 gmall-common-util中 因爲 web層和service層將來需要支持dubbo通訊
Zookeeper 服務啓動成功產生“心跳”
產生匹配的服務
本地@Autowired不在同一個容器無法注入 只能使用遠程協議代理
1.切換本地@service 爲dubbo
注意事項
1)Spring 的 @service 改爲 dubbo的service
2)將@Autowired 改爲 @Reference
3)dubbo在進行dubbo協議通訊是需要實現序列化接口(封裝數據的對象)
Bean對象沒有序列化
4)Dubbo comsumer訪問服務三秒鐘每一秒訪問一次 默認一秒超時
超過三次失敗
開發階段可以設置consumer設置超時延長(單位 毫秒)