狂神說springBoot總結筆記
三層架構 + MVC
架構 目的: 解耦
開發框架
spring
IOC AOP
IOC:控制反轉
原來我們自己做的,現在交給容器做,我們需要什么就去容器拿,
AOP:切面(本質,動態代理)
為了解決什么?不影響業務的情況下,實現動態代理,大量應用在日志,事務等方面。
spring是一個輕量級的java開源框架,容器
目的:解決企業開發的復雜性問題
spring的配置文件十分復雜。
springBoot
springBoot並不是新東西,就是spring的升級版
新一代的javaEE的開發標准,開箱即用!拿過來就可以用
他自動幫我們配置了很多東西,我們拿來即用!
特性:約定大於配置!
隨着公司體系越來越大,用戶越來越多!
微服務架構---》新架構
模塊化,功能化!
用戶,支付,簽到,娛樂,.....;
人越來越多,一台服務器解決不了;增加服務器!橫向
假設A服務器占用98%資源,B服務器只占用了10% ----負載均衡
將原來的整體項目,分模塊化,用戶就是一個單獨的項目,簽到也是一份單獨的項目,項目和項目之間需要通信,如何通信?
用戶非常的多,而簽到十分少!給用戶多一點服務器,給簽到少一點服務器!
微服務架構問題?
分布式架構會遇到的四個核心問題?
1. 這么多服務,客戶端該如何去訪問?
2. 這么多服務,服務之間如何進行通信?
3. 這么多服務如何治理?
4. 服務掛了,該怎么辦?
解決方案:
springCloud,是一套生態,就是來解決以上分布式架構的四個問題
想使用springCloud,必須掌握springBoot,因為springBoot是基於springBoot
1.spring Colud NetFlix,出來一套解決方案!一站式解決方案。我們都可以直接使用
API網關,zuul組件
Feign --》HttpClient----》Http的通信方式,同步並阻塞
服務注冊與發現,Eureka
熔斷機制,Hystrix
2018年年底,NetFlix宣布無限制停止維護。生態不在維護,就會脫節。
2.Apache Dubbo zookeeper,第二套解決方案
API:沒有!要么找第三方組件,要么自己實現
Dubbo是一個高性能的基於java實現的RPC通信框架!
服務注冊與搭建,zookeeper:動物園管理者(Hadoop,Hive)
沒有:借助了Hystrix
不完善,Dubbo3.0
3. springCloud Alibaba 一站式解決方案!
目前,又提出了一種方案:
服務網格:下一代微服務標准,Server Mesh
代表解決方案:istio()
萬變不離其中,一通百通!
1.API網關,服務路由
2.HTTP,RPC框架,異步調用
3.服務注冊與發現,高可用
4.熔斷機制,服務降級
如果你們基於這四個問題,開發一套解決方案,也叫springCloud!
為什么要解決這個問題?
本質是:網絡不可靠的!