-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
speingcloud組件(sprinfcloud組件)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于speingcloud組件的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內(nèi)免費在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、94.SpringBoot和SpringCloud的關(guān)系
很多人新手對于SpringBoot和SpringCloud的關(guān)系說不清楚、理解不清楚,本文抽出點時間來進行分享下自己的理解,以幫助大家更好的理解兩者之間的關(guān)系。
其設(shè)計目的之初是用來簡化Spring應(yīng)用的初始搭建以及開發(fā)過程。很多東西都是配置好的,約定大于配置,使用注解替代了很多xml臃腫的配置,極大的簡化了項目配置的消耗,提供了高效的編程腳手架。
Cloud相當(dāng)于利用了Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),像是服務(wù)注冊發(fā)現(xiàn)、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動和部署,Spring Cloud并沒有重復(fù)的造輪子,把各家公司成熟,經(jīng)得起考驗的服務(wù)框架組合起來,通過Spring Boot屏蔽調(diào)復(fù)雜的配置和實現(xiàn)原理,留給開發(fā)者一套簡單易懂、容易部署、容易維護的分布式開發(fā)工具包。
其中的關(guān)系是:
Spring-》Sping Boot-》Spring Cloud
Cloud的核心組件:
感覺這個話題能寫好多的東西,像是SpingCloud和Dubbbo的微服務(wù)選型等等再進行對比、比較優(yōu)缺點,本篇就簡單的進行了總結(jié)和介紹,希望能幫助到有困惑的朋友吧,后面有時間在寫一些文章進行拓展和補充。
二、Spring Cloud調(diào)用接口過程
Feign ----->Hystrix —>Ribbon —>Http Client(apache http components 或者 Okhttp) 具體交互流程上
Hystrix 是一個供分布式系統(tǒng)使用,提供 延遲 和 容錯 功能,保證復(fù)雜的分布系統(tǒng)在面臨不可避免的失敗時,仍能有其彈性。
比如系統(tǒng)中有很多服務(wù),當(dāng)某些服務(wù)不穩(wěn)定的時候,使用這些服務(wù)的用戶線程將會阻塞,如果沒有隔離機制,系統(tǒng)隨時就有可能會掛掉,從而帶來很大的風(fēng)險。SpringCloud使用 Hystrix組件提供斷路器、資源隔離與自我修復(fù)功能 。下圖表示服務(wù)B觸發(fā)了斷路器,阻止了級聯(lián)失敗
Hystrix是一個用于處理分布式系統(tǒng)的延遲和容錯的開源庫,在分布式系統(tǒng)中,許多依賴不可避免的會調(diào)用失敗,超時、異常等,Hystrix能夠保證在一個依賴出問題的情況下,不會導(dǎo)致整體服務(wù)失敗,避免級聯(lián)故障,提高分布式系統(tǒng)的彈性
熔斷機制是應(yīng)對雪崩效應(yīng)的一種微服務(wù)鏈路保戶機制,當(dāng)扇出鏈路的某個微服務(wù)不可用或者響應(yīng)時間太長時,會進行服務(wù)的降級,進而熔斷該節(jié)點微服務(wù)的調(diào)用,快速返回錯誤的相應(yīng)信息。當(dāng)檢測當(dāng)該節(jié)點微服務(wù)調(diào)用響應(yīng)正常后恢復(fù)調(diào)用鏈路,熔斷機制的注解是@HystrixCommand
“熔斷器”本身是一種開關(guān)裝置,當(dāng)某個服務(wù)單元發(fā)生故障之后,通過斷路器的故障監(jiān)控,,某個異常條件被觸發(fā),直接熔斷整個服務(wù)。,向調(diào)用方法返回一個符合預(yù)期的、可處理的備選響應(yīng)(FallBack),而不是長時間的等待或者拋出吊牌用方法無法處理的異常,就保證了服務(wù)調(diào)用方的線程不會被長時間占用,避免故障在分布式系統(tǒng)中蔓延,乃至雪崩。
服務(wù)降級處理是在客戶端實現(xiàn)完成的,與服務(wù)端沒有關(guān)系
整體資源快不夠了,忍痛將某些服務(wù)單元先關(guān)掉,關(guān)閉后還要返回一些可處理的備選方法,待渡過難關(guān),再開啟回來。
分布式項目中,有數(shù)十個依賴關(guān)系,每個依賴關(guān)系在某些時候不可避免地失敗,
服務(wù)雪崩 :當(dāng)A調(diào)用微服務(wù)B,B調(diào)C,和其他微服務(wù),這是扇出,當(dāng)扇出鏈路上某個微服務(wù)調(diào)用響應(yīng)時間過長或者不可用,對微服務(wù)的A的調(diào)用就會占用越來越多的系統(tǒng)資源,導(dǎo)致系統(tǒng)崩潰,所謂的雪崩效應(yīng)
服務(wù)熔斷 :一般是某個服務(wù)異常引起的,相當(dāng)于“保險絲”,當(dāng)某個異常條件被觸發(fā),直接熔斷整個服務(wù),不是等到此服務(wù)超時
服務(wù)降級 :降級一般是從整體負(fù)荷考慮,當(dāng)某個服務(wù)熔斷之后,服務(wù)器將不再被調(diào)用,客戶端可自己準(zhǔn)備一個本地的fallback回調(diào),返回一個缺省值,雖然服務(wù)水平下降,當(dāng)能用,比直接掛掉要強
springcloud是spring,采用AOP的思想,異常處理信息,我們某個服務(wù)的功能是每個方法,我們還可以使用AOP直接在api層通過接口設(shè)置服務(wù)降級。
三、JeeSpringCloud-互聯(lián)網(wǎng)云快速開發(fā)框架
(一款免費開源的JAVA互聯(lián)網(wǎng)云快速開發(fā)平臺)微服務(wù)分布式代碼生成的敏捷開發(fā)系統(tǒng)架構(gòu)。項目代碼簡潔,注釋豐富,上手容易,還同時集中分布式、微服務(wù),同時包含許多基礎(chǔ)模塊和監(jiān)控、服務(wù)模塊。
演示版地址:http://bknfdnl.hn3.mofasuidao.cn/admin/login
一、平臺簡介
在線文檔:https://gitee.com/JeeHuangBingGui/jeeSpringCloud/wikis
視頻和文檔下載:https://gitee.com/JeeHuangBingGui/jeeSpringCloud/attach_files
開源中國地址:https://www.oschina.net/p/jeeSpringCloud
文檔視頻下載:https://gitee.com/JeeHuangBingGui/jeeSpringCloud/attach_files
JeeSpringCloudV3.0-互聯(lián)網(wǎng)云快速開發(fā)框架模塊包含定時任務(wù)調(diào)度、服務(wù)器監(jiān)控、平臺監(jiān)控、異常郵件監(jiān)控、服務(wù)器Down機郵件監(jiān)控、平臺設(shè)置、開發(fā)平臺、郵件監(jiān)控、圖表監(jiān)控、地圖監(jiān)控、單點登錄、Redis分布式高速緩存、
ActiveMQ隊列、會員、營銷、在線用戶、日志、在線人數(shù)、訪問次數(shù)、調(diào)用次數(shù)、直接集群、接口文檔、生成模塊、代碼實例、安裝視頻、教程文檔、dubbo、springCloud、SpringBoot、mybatis、springmvc、IOC、AOP、定時任務(wù)、切面緩存、MVC、事務(wù)管理。
RedisMQ隊列、代碼生成(單表、主附表、樹表、列表和表單、增刪改查云接口、redis高速緩存對接代碼、圖表統(tǒng)計、地圖統(tǒng)計、vue.js)、工作流、模塊化
代碼生成前端控件包括單行文本、富文本、下拉選項、復(fù)選框、日期選擇、文件上傳選擇、樹選擇控件、單選按鈕、多行文本….。
二、平臺功能
用戶管理:用戶是系統(tǒng)操作者,該功能主要完成系統(tǒng)用戶配置。
部門管理:配置系統(tǒng)組織機構(gòu)(公司、部門、小組),樹結(jié)構(gòu)展現(xiàn)支持?jǐn)?shù)據(jù)權(quán)限。
崗位管理:配置系統(tǒng)用戶所屬擔(dān)任職務(wù)。
菜單管理:配置系統(tǒng)菜單,操作權(quán)限,按鈕權(quán)限標(biāo)識等。
角色管理:角色菜單權(quán)限分配、設(shè)置角色按機構(gòu)進行數(shù)據(jù)范圍權(quán)限劃分。
字典管理:對系統(tǒng)中經(jīng)常使用的一些較為固定的數(shù)據(jù)進行維護。
參數(shù)管理:對系統(tǒng)動態(tài)配置常用參數(shù)。
通知公告:系統(tǒng)通知公告信息發(fā)布維護。
操作日志:系統(tǒng)正常操作日志記錄和查詢;系統(tǒng)異常信息日志記錄和查詢。
登錄日志:系統(tǒng)登錄日志記錄查詢包含登錄異常。
在線用戶:當(dāng)前系統(tǒng)中活躍用戶狀態(tài)監(jiān)控。
定時任務(wù):在線(添加、修改、刪除)任務(wù)調(diào)度包含執(zhí)行結(jié)果日志。
代碼生成:前后端代碼生成(單表、主附表、樹表、列表和表單、增刪改查云接口、redis高速緩存對接代碼、圖表統(tǒng)計、地圖統(tǒng)計、vue.js) ,并生成菜單和權(quán)限直接使用。
系統(tǒng)接口:根據(jù)業(yè)務(wù)代碼自動生成相關(guān)的api接口文檔。
連接池監(jiān)視:監(jiān)視當(dāng)期系統(tǒng)數(shù)據(jù)庫連接池狀態(tài),可進行分析SQL找出系統(tǒng)性能瓶頸。
在線接口文檔:使用swager生成在線文檔。
ActiveMQ隊列:提供ActiveMQ隊列,處理批量發(fā)送大數(shù)據(jù)量郵件、大數(shù)據(jù)量日志文件。
工作流:功能包括在線辦公、我的任務(wù)、審批測試、流程管理、模型管理。
CMS:功能包括內(nèi)容管理、內(nèi)容管理、統(tǒng)計分析、欄目設(shè)置、首頁。
dubbo:代碼生成直接生成dubbo對接代碼。
服務(wù)器Down機郵件監(jiān)控:通過定時任務(wù)監(jiān)控服務(wù)器是否Down機,并發(fā)送通知郵件。
服務(wù)器監(jiān)控:通過 sigar 進行服務(wù)器圖形化監(jiān)控。
異常郵件監(jiān)控:全局?jǐn)r截系統(tǒng)異常,并發(fā)送通知郵件。
單點登錄:使用shior和Redis、共享session方式實現(xiàn)單點登錄。
Redis分布式高速緩存:代碼生成直接生成Redis對接代碼。
三、系統(tǒng)截圖
JeeSpringCloudV3.0-互聯(lián)網(wǎng)云快速開發(fā)框架(后臺)
四、平臺特性
JeeSpringCloud基于SpringBoot+SpringMVC+Mybatis+Redis+SpringCloud+Vue.js微服務(wù)分布式代碼生成的敏捷開發(fā)系統(tǒng)架構(gòu)。項目代碼簡潔,注釋豐富,上手容易,還同時集中分布式、微服務(wù),同時包含許多基礎(chǔ)模塊(用戶管理,角色管理,部門管理,字典管理等10個模塊。成為大眾認(rèn)同、大眾參與、成就大眾、大眾分享的開發(fā)平臺。JeeSpring官方qq群(328910546)。代碼生成前端界面、底層代碼(spring mvc、mybatis、Spring boot、Spring Cloud、微服務(wù)的生成)、安全框架、視圖框架、服務(wù)端驗證、任務(wù)調(diào)度、持久層框架、數(shù)據(jù)庫連接池、緩存框架、日志管理、IM等核心技術(shù)。努力用心為大中小型企業(yè)打造全方位J2EE企業(yè)級平臺ORM/Redis/Service倉庫開發(fā)解決方案。一個RepositoryService倉庫就直接實現(xiàn)dubbo、微服務(wù)、基礎(chǔ)服務(wù)器對接接口和實現(xiàn)。
努力用心為大中小型企業(yè)打造全方位J2EE企業(yè)級平臺開發(fā)解決方案。
Spring Boot/Spring cloud微服務(wù)是利用云平臺開發(fā)企業(yè)應(yīng)用程序的最新技術(shù),它是小型、輕量和過程驅(qū)動的組件。微服務(wù)適合設(shè)計可擴展、易于維護的應(yīng)用程序。它可以使開發(fā)更容易,還能使資源得到最佳利用。
微服務(wù)/集群(nignx) 支持REST風(fēng)格遠程調(diào)用(HTTP + JSON/XML):基于非常成熟的Spring Boot框架,在Spring Boot Spring Cloud中實現(xiàn)了REST風(fēng)格(HTTP + JSON/XML)的遠程調(diào)用,以顯著簡化企業(yè)內(nèi)部的跨語言交互,同時顯著簡化企業(yè)對外的Open API、無線API甚至AJAX服務(wù)端等等的開發(fā)。
事實上,這個REST調(diào)用也使得Dubbo可以對當(dāng)今特別流行的“微服務(wù)”架構(gòu)提供基礎(chǔ)性支持。 另外,REST調(diào)用也達到了比較高的性能,在基準(zhǔn)測試下,HTTP + JSON默認(rèn)的RPC協(xié)議(即TCP + Hessian2二進制序列化)之間只有1.5倍左右的差距,詳見下文的基準(zhǔn)測試報告。
ORM/Redis/Service倉庫
RepositoryORM倉庫,提供ORM接口和多種實現(xiàn),可進行配置實現(xiàn)。
RepositoryRedis倉庫,提供Redis接口和多種實現(xiàn),可進行配置實現(xiàn)??梢耘渲谜{(diào)用單機、redis、云redis對接。
RepositoryService倉庫,提供Service接口和多種實現(xiàn),可進行配置實現(xiàn)。一個RepositoryService倉庫就直接實現(xiàn)dubbo、微服務(wù)、基礎(chǔ)服務(wù)器對接接口和實現(xiàn)。
五、架構(gòu)說明
技術(shù)選型
六、代碼生成器
代碼生成器
七、開發(fā)入門
平臺教程:https://gitee.com/JeeHuangBingGui/jeeSpringCloud/attach_files
官方提供:
1、詳細部署文檔。
2、部署視頻。
3、中級培訓(xùn)視頻待定,包括代碼生成、架構(gòu)代碼介紹。
4、高級培訓(xùn)視頻待定,包括架構(gòu)代碼詳解。
5、架構(gòu)培訓(xùn)視頻待定,包括架構(gòu)詳解、代碼生成詳解。
平臺教程:https://gitee.com/JeeHuangBingGui/jeeSpringCloud/attach_files
八、在線體驗
演示版地址:http://bknfdnl.hn3.mofasuidao.cn/admin/login
四、Spring Cloud筆記03: 服務(wù)注冊和服務(wù)發(fā)現(xiàn)的基本概念
上節(jié)在K8S集群中部署了Nacos集群,并將Nacos的Web控制臺和API以Ingress (nacos.youcomany.com)的形式暴露到了k8s集群外部,便于從外部測試和訪問。 這里再次強調(diào)Nacos被設(shè)計為一個在IDC內(nèi)部使用的應(yīng)用組件,而非面向公網(wǎng)環(huán)境的產(chǎn)品,因此需要在內(nèi)部隔離網(wǎng)絡(luò)中使用,這里為了測試將其暴露到K8S集群外部,如果是生產(chǎn)環(huán)境必須做好網(wǎng)絡(luò)安全策略。
接下來我們將學(xué)習(xí)如何將服務(wù)注冊到Nacos,在開始后邊的實戰(zhàn)之前,先看一下服務(wù)治理中關(guān)于服務(wù)注冊和服務(wù)發(fā)現(xiàn)的一些概念。
服務(wù)治理首先要解決的問題就是服務(wù)注冊于服務(wù)發(fā)現(xiàn),解決了這兩個問題才可能實現(xiàn)微服務(wù)之間的調(diào)用問題。
服務(wù)注冊中心 : 每個服務(wù)實例會向注冊中心注冊自己的信息,一般包含地址、端口、協(xié)議、版本等信息。每種服務(wù)會有多個實例副本注冊到注冊中心,注冊中心維護每種服務(wù)的多個實例列表。同時,注冊中心會以某種機制去檢查各個服務(wù)實例是否可用,如果某個實例已經(jīng)失效會將其剔除。在某個服務(wù)實例關(guān)閉時會自動向注冊中心注銷自己。
常見的服務(wù)注冊有三種實現(xiàn)方式:
服務(wù)發(fā)現(xiàn) : 即服務(wù)客戶端在其網(wǎng)絡(luò)上找到其要調(diào)用服務(wù)的具體連接信息的過程。例如通過查詢服務(wù)注冊中心得到其所調(diào)用服務(wù)的具體 IP地址和端口。 簡單的說,服務(wù)發(fā)現(xiàn)就是服務(wù)或者應(yīng)用之間互相定位的過程。
使用服務(wù)發(fā)現(xiàn)后,客戶端對服務(wù)的調(diào)用不再和具體的服務(wù)實例地址耦合,而是基于服務(wù)發(fā)現(xiàn)機制。有以下4種常見的服務(wù)發(fā)現(xiàn)機制:
K8S中的一個Service資源對象對應(yīng)微服務(wù)。每個Service有唯一的名字,一個ClusterIP,一個端口。 K8S中的Pod資源對象中運行的容器對應(yīng)服務(wù)實例,通過Pod上的標(biāo)簽Label和Service上定義的標(biāo)簽選擇器Label Selector將Service與Pod關(guān)聯(lián),通過Service內(nèi)建的負(fù)載均衡機制,對Service的調(diào)用將轉(zhuǎn)發(fā)到Pod的容器中。 K8S中的服務(wù)注冊是在Pod創(chuàng)建時由調(diào)度者Kubernetes完成的。K8S中的服務(wù)發(fā)現(xiàn)采用的是服務(wù)端負(fù)載均衡器,服務(wù)注冊中心為Kubernetes(后端持久化存儲etcd)。
Spring Cloud對微服務(wù)提供了完整的解決方案和統(tǒng)一抽象,按照微服務(wù)的功能特性: 服務(wù)治理、負(fù)載均衡、服務(wù)間調(diào)用通信、服務(wù)配置中心、服務(wù)網(wǎng)關(guān)、分布式鏈路追蹤、消息總線、消息時間驅(qū)動、分布式事務(wù)等,提供了一系列組件,被稱為Spring Cloud全家桶。 全家桶中的功能組件還支持使用第三方實現(xiàn)的某個組件單獨替換,只要第三方組件是遵循Spring Cloud Common的抽象實現(xiàn)的。
Spring Cloud在服務(wù)治理的組件上有以下三種選擇:
當(dāng)然由于"某些原因",在最新版本的Spring Cloud中Netflix組件庫已經(jīng)逐漸被移除。
我們在這里對Spring Cloud服務(wù)注冊和服務(wù)發(fā)現(xiàn)的學(xué)習(xí)將使用Spring Cloud Alibaba組件的Nacos。
Nacos是Spring Cloud Alibaba提供的服務(wù)發(fā)現(xiàn)和配置管理的解決方案。Nacos是用Java開發(fā)的,通過Spring Cloud Alibaba可以很好的與Spring Cloud整合。 如果項目的所有微服務(wù)都是用Java開發(fā)的,那么使用Nacos作為服務(wù)發(fā)現(xiàn)可能會使一個不錯的選擇。
Nacos的服務(wù)注冊采用的是由"服務(wù)進程內(nèi)直接包含服務(wù)注冊模塊,由服務(wù)實例自己完成上線注冊和下線注銷。",這與K8S服務(wù)注冊方案中"由一個中間調(diào)度者K8S來幫助處理服務(wù)注冊"是不同的。
以上就是關(guān)于speingcloud組件相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
裝win10一定要gpt嗎(裝win10一定要esp和msr嗎)
山間野營景觀設(shè)計公司(山間設(shè)計事務(wù)所)