ee架構軟件有哪些?
1、傳統三層架構(all in one項目)
傳統三層架構大致可以分為表現層,業務層和持久層(數據訪問層)。其中表現層負責接受請求和轉發請求。業務層負責處理請求(注:事務管理,日志記錄等AOP類型的操作均封裝在這一層)。持久層主要負責數據庫與實體之間的操作。
struts典型的mvc三層架構:模型層,視圖層,控制層。
SpringMVC中的MVC指的是什么:當一個請求到達服務器時,由中央控制器DispatcherServlet(控制層)查找要訪問的controller,然后controller->調用service->調用dao,之后將獲取的數據返回到jsp頁面(視圖層)。
即:嚴格來說在SpringMVC中控制器是DispacterServlet,模型層是controller(即該模型層又可以看成一個MVC架構),視圖層是jsp頁面。
另外,利用框架可以簡化各層的開發:表現層使用SpringMVC或者struts2,持久層使用Mybatis或Hibernate,使用spring管理表現層,業務層和持久層三層之間的關系
2、集群架構(屬于水平拓展)
由于傳統的三層架構中存在許多問題,比如業務層中的不同模塊占用系統資源相差太大,導致占用系統資源,可以使用集群解決問題。(相當于備份多個文件,多臺服務器反問的是同一個項目資源,集群架構的目的也是為了系統資源的高可用性。)
在集群架構中存在一個重要的角色就是反向代理服務器,他的任務是實現負載均衡,接收用戶請求,轉發到目標服務器,其中反向代理服務器可以使用nginx實現(簡單來說也就是一個實現負載均衡的算法)。
3、分布式架構(垂直拆分)
分布式架構特點:多個模塊完成一個功能,每個模塊又可以搭建集群,從而實現高可用。
4、微服務架構(垂直劃分)
根據產品的業務功能模塊劃分服務的種類,客戶端可以通過基于HTTP或者rpc的方式調用微服務,目的是為了降低所產生的性能開銷。同時每個模塊仍然可以搭建集群,從而實現高可用。
4.1 SOA架構
是當服務過多時,服務之間調用關系復雜混亂,不利于維護。
使用dubbo。使用rpc協議進行遠程調用,直接使用socket通信。傳輸效率高,并且可以統計系統之間的調用關系,調用次數。(由于dubbo阿里公司已經停止更新,建議使用springcloud)。
4.2 Dobbo
如果服務與服務之間存在調用,dobbo可以通過名字去鑒別因為編碼時每個模塊之間都有調用關系,且該關系也被dobbo掌握。
4.3 SpringCloud
SpringCloud是一個基于 Spring Boot 實現的服務治理工具包;Spring Boot 專注于快速、方便集成的單個微服務個體;Spring Cloud 關注全局的服務治理框架。