摘要:授權框架使第三方應用程序來獲取對服務的有限訪問機會。無論是通過編排資源所有者和服務之間的交互批準的資源所有者,或通過允許第三方應用程序來獲取自己的訪問權限。
SpringCloud打造微服務平臺--概覽 簡述 SpringCloud是什么 Spring Boot和SpringCloud是什么關系
Spring Boot是Spring的一套快速WEB開發(fā)的腳手架,可建立獨立的Spring應用程序,無代碼生成和xml配置、自動配置Spring、內嵌Servlet容器。Spring Boot使用了默認大于配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置??梢曰赟pring Boot快速開發(fā)單個微服務。
Spring Cloud是一個基于Spring Boot實現(xiàn)的云應用開發(fā)工具。Spring Cloud很大的一部分是基于Spring Boot來實現(xiàn)。Spring Boot專注于快速、方便集成的單個個體,Spring Cloud是關注全局的服務治理框架;
spring -> spring booot -> spring cloud 這樣的關系。
官網
SpringCloud架構 組件概覽 組件簡介注冊中心:
spring-cloud-eureka
spring-cloud-zookeeper
spring-cloud-consul
配置中心:
spring-cloud-config
服務容錯:
spring-cloud-netflix-hystrix
API網關:
spring-cloud-gateway
spring-cloud-netfilx-zuul
服務調用:
spring-cloud-openfeign
spring-cloud-netflix-ribbon
消息隊列:
spring-cloud-stream --> rabbitmq、kafka
spring-cloud-bus
鏈路跟蹤:
spring-cloud-sletuh --> zipkin server
任務調度:
spring-cloud-task
安全認證:
spring-cloud-security
spring-cloud-vault
測試管理:
spring-cloud-contract
組件介紹 注冊中心 Why?微服務架構中,應用被拆分眾多的小應用服務,應該規(guī)模變大,服務實例的數量是動態(tài)變化,為了為客戶端能夠訪問到服務,就必須要有一種服務的發(fā)現(xiàn)機制,完成服務的登記注冊、監(jiān)控管理、服務發(fā)現(xiàn),服務間的調用管理等功能。
What?有兩種主要的服務發(fā)現(xiàn)方式:客戶端發(fā)現(xiàn)(client-side discovery)和服務器端發(fā)現(xiàn)(server-side discovery)。Eureka是客戶端發(fā)現(xiàn)模式。
Spring Cloud Eureka由兩個組件組成:Eureka服務器和Eureka客戶端。
Eureka Client連接到Eureka Server,并維持心跳連接。這樣系統(tǒng)的維護人員就可以通過 Eureka Server 來監(jiān)控系統(tǒng)中各個微服務是否正常運行?;镜慕Y構如下圖。
另外Eurekag還提供了web的管理界面,運維人員可以查看各微服務的情況
配置中心 Why?在微服務架構中,每個微服務節(jié)點都有相關的配置數據項。當節(jié)點眾多,維護就變得非常困難,因此需要建立一個中心配置服務,所有配置都放在配置中心統(tǒng)一管理。
What?Spring Cloud Config由兩個組件組成:Config服務器和Config客戶端。應用啟動時,將相關配置項拉取到本地緩存使用,配置更新時也可由配置中心主動推送到應用節(jié)點(后續(xù)會詳細講解)。他支持git、svn、file方式存儲配置。
消息中心 Why?消息總線是為了實現(xiàn)企業(yè)應該數據共享和集成,提供一種基于企業(yè)服務總線的信息共享交換平臺。具有松散耦合的特點,實現(xiàn)了"集中式管理、分布式運行"的工作模式。
在微服務架構中,服務眾多,各服務又有很多的調用和被調用關系。消息總線就是為了解決在某些非同步場景下,服務間強解藕、數據交換量巨大的解決方案。
What?Spring Cloud Bus 將分布式的節(jié)點用輕量的消息代理連接起來。它可以用于廣播配置文件的更改或者服務之間的異步通訊,也可以用于監(jiān)控??梢哉f,消息總線是微服務應用擴展“道路”上的推進器,而且也把它用來作應用間相互通信的消息管道。
服務網關 Why?在微服務架構中,后端服務往往不直接開放給調用端,而是通過一個API網關根據請求的url,路由到相應的服務。當添加API網關后,在第三方調用端和服務提供方之間就創(chuàng)建了一面墻,這面墻直接與調用方通信進行權限控制、限流、排隊,過載保護、請求合并、裁剪、黑白名單、異常用戶過濾攔截等等。
What?Spring Cloud Gateway是一個構建在Spring 生態(tài)之上的高性能、非阻塞API網關,包括:Spring 5,Spring Boot 2和Project Reactor。
服務調用 Why?負載均衡可分為服務端負載均衡和客戶端負載均衡,服務端負載均衡完全由服務器處理,客戶端不需要做任何事情。而客戶端負載均衡技術,客戶端需要維護一組服務器引用,每次客戶端向服務端發(fā)請求的時候,會根據算法主動選中一個服務節(jié)點。常用的負載均衡算法有:隨機、輪詢、權重、負載、Hash等。
What?Spring Cloud Ribbon是一個基于客戶端的負載均衡器,F(xiàn)eign內部也已經使用了Ribbon。
Spring Cloud Feign是一個聲明式的Web Service客戶端,它的目的就是讓Web Service調用更加簡單。Feign提供了HTTP請求的模板,通過編寫簡單的接口和插入注解,就可以定義好HTTP請求的參數、格式、地址等信息。而Feign則會完全代理HTTP請求,我們只需要像調用方法一樣調用它就可以完成服務請求及相關處理。
Feign整合了Ribbon和Hystrix(見下節(jié)),可以讓我們不再需要顯式地使用這兩個組件,大大簡化了服務調用。
服務容錯 Why?在分布式架構中,一個應用依賴多個服務是非常常見的,如果其中一個依賴由于延遲過高發(fā)生阻塞,調用該依賴服務的線程就會阻塞,如果相關業(yè)務的QPS較高,就可能產生大量阻塞,從而導致該應用/服務由于服務器資源被耗盡而拖垮。
另外,故障也會在應用之間傳遞,如果故障服務的上游依賴較多,可能會引起服務的雪崩效應。就跟數據癱瘓,會引起依賴該數據庫的應用癱瘓是一樣的道理。
所以,斷路器就是用來支持服務隔離、熔斷等操作的工具。斷路器會以隔離的方式來處理服務請求,當斷路數量達到閾值,就會觸發(fā)熔斷(直接返回失?。?。
What?Spring Cloud Hystrix微服務架構中提供服務隔離、熔斷、降級機制的工具/框架。通過以上手段來降低服務故障帶來的關聯(lián)影響,以提高系統(tǒng)的整體可用性。
斷路器與各服務的關系
斷路器的原理
授權與認證 Why?在 Web 應用開發(fā)中,安全一直是非常重要的一個方面。安全雖然屬于應用的非功能性需求,但是應該在應用開發(fā)的初期就考慮進來。如果在應用開發(fā)的后期才考慮安全的問題,就可能陷入一個兩難的境地:一方面,應用存在嚴重的安全漏洞,無法滿足用戶的要求,并可能造成用戶的隱私數據被攻擊者竊??;另一方面,應用的基本架構已經確定,要修復安全漏洞,可能需要對系統(tǒng)的架構做出比較重大的調整,因而需要更多的開發(fā)時間,影響應用的發(fā)布進程。因此,從應用開發(fā)的第一天就應該把安全相關的因素考慮進來,并在整個應用的開發(fā)過程中。
What?Spring Cloud Security是基于Spring的企業(yè)應用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。它提供全面的安全性解決方案,同時在Web請求級和方法調用級處理身份確認和授權。他是靈活和強大的身份驗證和訪問控制框架,以確保基于Spring的Java Web應用程序的安全。
OAuth2.0授權框架使第三方應用程序來獲取對HTTP服務的有限訪問機會。無論是通過編排資源所有者和HTTP服務之間的交互批準的資源所有者,或通過允許第三方應用程序來獲取自己的訪問權限。
例如某網站/app以微信、qq登陸方式就是OAuth2方式。
Spring Security Oauth2是建立在spring security的基礎之上,符合OAuth2標準的開源實現(xiàn)。
OAuth2定義了4種模式,共有4個角色,具體內容可以查看另外的介紹
Spring Security OAuth2簡介與實施
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11906.html
摘要:它就是史上最簡單的教程第三篇服務消費者后端掘金上一篇文章,講述了通過去消費服務,這篇文章主要講述通過去消費服務。概覽和架構設計掘金技術征文后端掘金是基于的一整套實現(xiàn)微服務的框架。 Spring Boot 配置文件 – 在坑中實踐 - 后端 - 掘金作者:泥瓦匠鏈接:Spring Boot 配置文件 – 在坑中實踐版權歸作者所有,轉載請注明出處本文提綱一、自動配置二、自定義屬性三、ran...
摘要:使用進行項目的構建管理,采用進行持續(xù)集成,主要定位于大型分布式企業(yè)系統(tǒng)或大型分布式互聯(lián)網產品的架構。使用防腳本注入跨站點腳本編制偽造請求攻擊等常見的攻擊手段。 ??鴻鵠云架構系統(tǒng)管理平臺是一個大型企業(yè)、分布式、微服務、云架構的JavaEE體系快速研發(fā)平臺,基于模塊化、微服務化、原子化、熱部署...
閱讀 2759·2021-09-24 10:34
閱讀 1862·2021-09-22 10:02
閱讀 2252·2021-09-09 09:33
閱讀 1457·2021-08-13 15:02
閱讀 3270·2020-12-03 17:10
閱讀 1180·2019-08-30 15:44
閱讀 2144·2019-08-30 12:58
閱讀 3229·2019-08-26 13:40