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