1、從單體架構到分布式架構的演進
1.1、單體架構
通常來說,如果一個war包或者jar包里面包含一個應用的所有功能,則我們稱這種架構為單體架構,
1.2、集群及垂直化
1、通過橫向增加服務器,把單臺機器變成多臺機器的集群,
2、按照業務的垂直領域進行拆分,減少業務的耦合度,以及降低單個war包帶來的伸縮性困難問題,
1.3、SOA
SOA就是面向服務的架構,核心目標是把共享業務提取成獨立的基礎服務,在SOA中,會采用ESB(企業服務總線)來作為系統和服務之間的通信橋梁,
1.4微服務架構
SOA關注的是服務的重用性及解決資訊孤島問題,微服務關注的是解耦,解耦是降低業務之間的耦合度,而重用性關注的是服務的復用,
微服務會更多關注和DevOps持續交付上,因為服務粒度細化之后使得開發運維變得更加重要,因此微服務與容器化技術的結合更加緊密,
2、微服務解決方案之Spring Cloud
Spring Cloud其實就是一套規范,而Spring Cloud Netflix、Spring Cloud Consul、Spring Cloud Alibaba才是Spring Cloud規范的實作,
2.1、Spring Cloud Netflix
Spring Cloud Netflix主要為微服務架構下的服務治理提供解決方案,包括以下組件:Eureka,Zuul,Ribbon,Feign,Hystrix,Hystrix Dashboard,Turbine
2.2 Spring Cloud Alibaba
Spring Cloud Alibaba主要為微服務開發提供一站式的解決方案,包括開源組件和阿里云產品組件,云產品是需要付費使用的,包括以下組件:Sentinel,Nacos,RocketMQ,Seata,Dubbo,OSS(收費的云服務)
3、Spring Cloud的核心之Spring Boot
1、如何理解約定優于配置?
在SpringBoot中,約定優于配置的思想主要體現在以下方面
1、Maven目錄結構的約定,
2、Spring Boot默認的組態檔及組態檔中配置屬性的約定,
3、對于Spring MVC的依賴,自動依賴內置的Tomcat容器,
4、對于Starter組件自動完成裝配,
2、自動裝配的核心程序:
1、通過@Import(AutoConfigurationImportSelector)實作配置類的匯入,但是這里并不是傳統意義上的單個配置類裝配,
2、AutoConfigurationImportSelector類實作了ImportSelector介面,重寫了方法selectImports,它用于實作選擇性批量配置類的裝配,
3、通過spring提供的SpringFactoriesLoader機制,掃描classpath路徑下的META-INF/spring.factories,讀取需要實作自動裝配的配置類,
4、通過條件篩選的方式,把不符合條件的配置類移除,最終完成自動裝配,
3、@Conditional條件裝配:
1、@Conditional是Spring Framework提供的一個核心注解,這個注解的作用是提供自動裝配的條件約束,一般與@Configuration和@Bean配合使用,該注解可以接收一個Condition陣列,
2、Condition是一個函式式介面,提供了matches方法,它主要提供一個條件匹配規則,回傳true表示可以注入Bean,反之則不注入,
4、Starter命名規范:
1、官方命名:spring-boot-starter-模塊名稱,比如spring-boot-starter-web
2、自定義命名:模塊名稱-spring-boot-starter,比如mybatis-spring-boot-starter,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/289544.html
標籤:其他
