日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
沒用過微服務(wù)?別慌,丐版架構(gòu)圖,讓你輕松拿捏面試官

大家好,我是哪吒。

為井陘等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及井陘網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、井陘網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

很多人都說現(xiàn)在是云原生、大模型的時(shí)代,微服務(wù)已經(jīng)過時(shí)了,但現(xiàn)實(shí)的是,很多人開發(fā)多年,都沒有在實(shí)際的開發(fā)中用過微服務(wù),更別提搭建微服務(wù)框架和技術(shù)選型了。

面試的時(shí)候都會(huì)問,怎么辦?

今天分享一張微服務(wù)的丐版架構(gòu)圖,讓你可以和面試官掰扯掰扯~

腦中有圖,口若懸河,一套組合拳下來,面試官只能拍案叫好,大呼快哉,HR更是驚呼,我勒個(gè)乖乖,完全聽不懂。

話不多說,直接上圖。

由此可見,Spring Cloud微服務(wù)架構(gòu)是由多個(gè)組件一起組成的,各個(gè)組件的交互流程如下。

  •  瀏覽器通過查詢DNS服務(wù)器,獲取可用的服務(wù)實(shí)例的網(wǎng)絡(luò)位置信息,從而實(shí)現(xiàn)服務(wù)的自動(dòng)發(fā)現(xiàn)和動(dòng)態(tài)更新。
  • 通過CDN獲取靜態(tài)資源,提高訪問速度,解決跨地域請(qǐng)求速度慢的問題。
  • 通過LVS負(fù)載均衡器,實(shí)現(xiàn)負(fù)載均衡和網(wǎng)絡(luò)協(xié)議。
  • 通過Nginx反向代理服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)到gateway做路由轉(zhuǎn)發(fā)和安全驗(yàn)證。
  • 訪問注冊(cè)中心和配置中心Nacos,獲取后端服務(wù)和配置項(xiàng)。
  • 通過Sentinel進(jìn)行限流。
  • 通過Redis進(jìn)行緩存服務(wù)、會(huì)話管理、分布式鎖控制。
  • 通過Elasticsearch進(jìn)行全文搜索,存儲(chǔ)日志,配合Kibana,對(duì)ES中的數(shù)據(jù)進(jìn)行實(shí)時(shí)的可視化分析。

一、域名系統(tǒng)DNS

在微服務(wù)中,域名系統(tǒng)DNS的作用主要是進(jìn)行服務(wù)發(fā)現(xiàn)和負(fù)載均衡。

  • 每個(gè)微服務(wù)實(shí)例在啟動(dòng)時(shí),將自己的IP地址和端口號(hào)等信息注冊(cè)到DNS服務(wù)器,瀏覽器通過查詢DNS服務(wù)器,獲取可用的服務(wù)實(shí)例的網(wǎng)絡(luò)位置信息,從而實(shí)現(xiàn)服務(wù)的自動(dòng)發(fā)現(xiàn)和動(dòng)態(tài)更新。
  • DNS服務(wù)器可以根據(jù)一定的策略,比如輪詢、隨機(jī)等,將請(qǐng)求分發(fā)到不同的負(fù)載均衡器LVS上,提高系統(tǒng)的并發(fā)處理能力和容錯(cuò)性。

二、LVS(Linux Virtual Server),Linux虛擬服務(wù)器

LVS是一個(gè)開源的負(fù)載均衡軟件,基于Linux操作系統(tǒng)實(shí)現(xiàn)。它在Linux內(nèi)核中實(shí)現(xiàn)負(fù)載均衡的功能,通過運(yùn)行在用戶空間的用戶進(jìn)程實(shí)現(xiàn)負(fù)載均衡的策略。

  • LVS支持多種負(fù)載均衡算法,例如輪詢、隨機(jī)、加權(quán)輪詢、加權(quán)隨機(jī)等。
  • LVS支持多種網(wǎng)絡(luò)協(xié)議,例如TCP、HTTP、HTTPS,可以滿足不同應(yīng)用的需求。
  • LVS具有高可用和可擴(kuò)展性。它支持主從備份和冗余配置,當(dāng)主服務(wù)器出現(xiàn)故障時(shí),備份服務(wù)器可以自動(dòng)接管負(fù)載,確保服務(wù)的連續(xù)性。此外,LVS還支持動(dòng)態(tài)添加和刪除服務(wù)器節(jié)點(diǎn),方便管理員進(jìn)行擴(kuò)容和縮容的操作。

三、CDN靜態(tài)資源

CDN靜態(tài)資源圖片、視頻、JavaScript文件、CSS文件、靜態(tài)HTML文件等。這些靜態(tài)資源的特點(diǎn)是讀請(qǐng)求量極大,對(duì)訪問速度的要求很高,并占據(jù)了很高的寬帶。如果處理不當(dāng),可能導(dǎo)致訪問速度慢,寬帶被占滿,進(jìn)而影響動(dòng)態(tài)請(qǐng)求的處理。

CDN的作用是將這些靜態(tài)資源分發(fā)到多個(gè)地理位置的機(jī)房的服務(wù)器上。讓用戶就近選擇訪問,提高訪問速度,解決跨地域請(qǐng)求速度慢的問題。

四、Nginx反向代理服務(wù)器

1、Nginx的主要作用體現(xiàn)在以下幾個(gè)方面:

  • 反向代理,Nginx可以作為反向代理服務(wù)器,接收來自客戶端的請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)到后端的微服務(wù)實(shí)例。
  • 負(fù)載均衡,Nginx可以根據(jù)配置,將請(qǐng)求分發(fā)到微服務(wù)不同的實(shí)例上,實(shí)現(xiàn)負(fù)載均衡。
  • 服務(wù)路由,Nginx可以根據(jù)不同的路徑規(guī)則,將請(qǐng)求路由到不同的微服務(wù)上。
  • 靜態(tài)資源服務(wù),Nginx可以提供靜態(tài)資源服務(wù),如圖片、視頻、JavaScript文件、CSS文件、HTML靜態(tài)文件等,減輕后端服務(wù)的壓力,提高系統(tǒng)的響應(yīng)速度和性能。

2、Nginx靜態(tài)資源服務(wù)和CDN靜態(tài)資源服務(wù),如何選擇?

在選擇Nginx靜態(tài)資源服務(wù)和CDN靜態(tài)資源服務(wù)時(shí),可以根據(jù)以下幾個(gè)因素進(jìn)行權(quán)衡和選擇:

  • 性能和速度:CDN靜態(tài)資源服務(wù)通常具有更廣泛的分布式節(jié)點(diǎn)和緩存機(jī)制,可以更快地響應(yīng)用戶的請(qǐng)求,并減少傳輸距離和網(wǎng)絡(luò)擁塞。如果靜態(tài)資源的加載速度和性能是首要考慮因素,CDN可能是更好的選擇。
  • 控制和自定義能力:Nginx靜態(tài)資源服務(wù)提供更高的靈活性和控制能力,可以根據(jù)具體需求進(jìn)行定制和配置。如果需要更精細(xì)的控制和自定義能力,或者在特定的網(wǎng)絡(luò)環(huán)境下進(jìn)行部署,Nginx可能更適合。
  • 成本和預(yù)算:CDN靜態(tài)資源服務(wù)通常需要支付額外的費(fèi)用,而Nginx靜態(tài)資源服務(wù)可以自行搭建和部署,成本相對(duì)較低。在考慮選擇時(shí),需要綜合考慮成本和預(yù)算的因素。
  • 內(nèi)容分發(fā)和全球覆蓋:如果靜態(tài)資源需要分發(fā)到全球各地的用戶,CDN靜態(tài)資源服務(wù)的分布式節(jié)點(diǎn)可以更好地滿足這個(gè)需求,提供更廣泛的內(nèi)容分發(fā)和全球覆蓋。

選擇Nginx靜態(tài)資源服務(wù)還是CDN靜態(tài)資源服務(wù)取決于具體的需求和場景。如果追求更好的性能和全球覆蓋,可以選擇CDN靜態(tài)資源服務(wù);如果更需要控制和自定義能力,且對(duì)性能要求不是特別高,可以選擇Nginx靜態(tài)資源服務(wù)。

五、Gateway網(wǎng)關(guān)

在微服務(wù)架構(gòu)中,Gateway的作用如下:

  • 統(tǒng)一入口:Gateway作為整個(gè)微服務(wù)架構(gòu)的統(tǒng)一入口,所有的請(qǐng)求都會(huì)經(jīng)過Gateway,這樣做可以隱藏內(nèi)部微服務(wù)的細(xì)節(jié),降低后臺(tái)服務(wù)受攻擊的概率。
  • 路由和轉(zhuǎn)發(fā):Gateway根據(jù)請(qǐng)求的路徑、參數(shù)等信息,將請(qǐng)求路由到相應(yīng)的微服務(wù)實(shí)例。這樣可以讓服務(wù)解耦,讓各個(gè)微服務(wù)可以獨(dú)立的開發(fā)、測試、部署。
  • 安全和認(rèn)證:Gateway通常集成了身份驗(yàn)證和權(quán)限驗(yàn)證的功能,確保只有經(jīng)過驗(yàn)證的請(qǐng)求才能訪問微服務(wù)。Gateway還具備防爬蟲、限流、熔斷的功能。
  • 協(xié)議轉(zhuǎn)換:由于微服務(wù)架構(gòu)中可以使用不同的技術(shù)和協(xié)議,Gateway可以作為協(xié)議轉(zhuǎn)換中心,實(shí)現(xiàn)不同協(xié)議之間的轉(zhuǎn)換和兼容性。
  • 日志和監(jiān)控,Gateway可以記錄所有的請(qǐng)求和響應(yīng)日志,為后續(xù)的故障排查、性能分析、安全審計(jì)提供數(shù)據(jù)支持。Gateway還集成了監(jiān)控和報(bào)警功能:實(shí)時(shí)反饋系統(tǒng)的運(yùn)行狀態(tài)。
  • 服務(wù)聚合:在某些場景中,Gateway可以將來自多個(gè)微服務(wù)的數(shù)據(jù)進(jìn)行聚合,然后一次性返回給客戶端,減少客戶端和微服務(wù)之間的交互次數(shù),提高系統(tǒng)性能。

六、注冊(cè)中心Nacos

在微服務(wù)架構(gòu)中,Nacos的作用主要體現(xiàn)在注冊(cè)中心、配置中心、服務(wù)健康檢查等方面。

  • 注冊(cè)中心:Nacos支持基于DNS和RPC的服務(wù)發(fā)現(xiàn),微服務(wù)可以將接口服務(wù)注冊(cè)到Nacos中,客戶端通過nacos查找和調(diào)用這些服務(wù)實(shí)例。
  • 配置中心:Nacos提供了動(dòng)態(tài)配置服務(wù),可以動(dòng)態(tài)的修改配置中心中的配置項(xiàng),不需要重啟后臺(tái)服務(wù),即可完成配置的修改和發(fā)布,提高了系統(tǒng)的靈活性和可維護(hù)性。
  • 服務(wù)健康檢查:Nacos提供了一系列的服務(wù)治理功能,比如服務(wù)健康檢查、負(fù)載均衡、容錯(cuò)處理等。服務(wù)健康檢查可以阻止向不健康的主機(jī)或服務(wù)實(shí)例發(fā)送請(qǐng)求,保證了服務(wù)的穩(wěn)定性和可靠性。負(fù)載均衡可以根據(jù)一定的策略,將請(qǐng)求分發(fā)到不同的服務(wù)實(shí)例中,提高系統(tǒng)的并發(fā)處理能力和性能。

七、Redis緩存

1、在微服務(wù)架構(gòu)中,Redis的作用主要體現(xiàn)在以下幾個(gè)方面:

  • 緩存服務(wù):Redis可以作為高速緩存服務(wù)器,將常用的數(shù)據(jù)存儲(chǔ)在內(nèi)存中,提高數(shù)據(jù)訪問速度和響應(yīng)時(shí)間,減輕數(shù)據(jù)庫的訪問壓力,并加速后臺(tái)數(shù)據(jù)的查詢。
  • 會(huì)話管理:Redis可以存儲(chǔ)會(huì)話信息,并實(shí)現(xiàn)分布式會(huì)話管理。這使會(huì)話信息可以在多個(gè)服務(wù)之間共享和訪問,提供一致的用戶體驗(yàn)。
  • 分布式鎖:Redis提供了分布式鎖機(jī)制,可以確保微服務(wù)中多個(gè)節(jié)點(diǎn)對(duì)共享資源的訪問的合理性和有序性,避免競態(tài)條件和資源沖突。
  • 消息隊(duì)列:Redis支持發(fā)布訂閱模式和消息隊(duì)列模式,可以作為消息中間件使用。微服務(wù)之間可以通過Redis實(shí)現(xiàn)異步通信,實(shí)現(xiàn)解耦和高可用性。

2、競態(tài)條件

競態(tài)條件是指在同一個(gè)程序的多線程訪問同一個(gè)資源的情況下,如果對(duì)資源的訪問順序敏感,就存在競態(tài)條件。競態(tài)條件可能會(huì)導(dǎo)致執(zhí)行結(jié)果出現(xiàn)各種問題,例如計(jì)算機(jī)死機(jī)、出現(xiàn)非法操作提示并結(jié)束程序、錯(cuò)誤的讀取舊的數(shù)據(jù)或錯(cuò)誤的寫入新數(shù)據(jù)。在串行的內(nèi)存和存儲(chǔ)訪問能防止這種情況,當(dāng)讀寫命令同時(shí)發(fā)生的時(shí)候,默認(rèn)是先執(zhí)行讀操作的。

競態(tài)條件也可能在網(wǎng)絡(luò)中出現(xiàn),當(dāng)兩個(gè)用戶同時(shí)試圖訪問同一個(gè)可用信道的時(shí)候就會(huì)發(fā)生,系統(tǒng)同意訪問之前沒有計(jì)算機(jī)能得到信道被占用的提示。統(tǒng)計(jì)上說這種情況通常是發(fā)生在有相當(dāng)長的延遲時(shí)間的網(wǎng)絡(luò)里,比如使用地球同步衛(wèi)星。

為了防止這種競態(tài)條件發(fā)生,需要制定優(yōu)先級(jí)列表,比如用戶的用戶名在字母表里排列靠前可以得到相對(duì)較高的優(yōu)先級(jí)。黑客可以利用競態(tài)條件這一弱點(diǎn)來贏得非法訪問網(wǎng)絡(luò)的權(quán)利。

競態(tài)條件是由于多個(gè)線程或多個(gè)進(jìn)程同時(shí)訪問共享資源而引發(fā)的問題,它可能會(huì)導(dǎo)致不可預(yù)測的結(jié)果和不一致的狀態(tài)。解決競態(tài)條件的方法包括使用鎖、同步機(jī)制、優(yōu)先級(jí)列表等。

3、Redis會(huì)話管理如何實(shí)現(xiàn)?

Redis會(huì)話管理的一般實(shí)現(xiàn)步驟:

  • 會(huì)話創(chuàng)建:當(dāng)用戶首次訪問應(yīng)用時(shí),可以在Redis中創(chuàng)建一個(gè)新的會(huì)話,會(huì)話可以是一個(gè)具有唯一標(biāo)識(shí)符的數(shù)據(jù)結(jié)構(gòu),例如哈希表或字符串。
  • 會(huì)話信息存儲(chǔ):將會(huì)話信息關(guān)聯(lián)到會(huì)話ID存儲(chǔ)到Redis中,會(huì)話信息可以包括用戶身份、登錄狀態(tài)、權(quán)限等。
  • 會(huì)話過期時(shí)間設(shè)置:為會(huì)話設(shè)置過期時(shí)間,以確保會(huì)話在一定時(shí)間后自動(dòng)失效。Redis提供了設(shè)置鍵值對(duì)過期時(shí)間的機(jī)制,可以通過EXPIRE命令為會(huì)話設(shè)置過期時(shí)間。
  • 會(huì)話訪問和更新:在每次用戶訪問應(yīng)用時(shí),通過會(huì)話ID獲取相應(yīng)的會(huì)話信息,并對(duì)其進(jìn)行驗(yàn)證和更新。如果會(huì)話已過期,可以要求用戶重新登錄。
  • 會(huì)話銷毀:當(dāng)用戶主動(dòng)退出或會(huì)話到期后,需要銷毀會(huì)話,通過刪除Redis中存儲(chǔ)的會(huì)話信息即可。

八、Elasticsearch全文搜索引擎

在微服務(wù)架構(gòu)中,Elasticsearch全文搜索引擎的應(yīng)用主要體現(xiàn)在如下幾個(gè)方面:

  • 全文搜索引擎:ES是一個(gè)分布式的全文搜索引擎,它可以對(duì)海量的數(shù)據(jù)進(jìn)行實(shí)時(shí)的全文搜索,返回與關(guān)鍵詞相關(guān)的結(jié)果;
  • 分布式存儲(chǔ):ES提供了分布式的實(shí)時(shí)文件存儲(chǔ)功能,每個(gè)字段都可以被索引并可被搜索,這使得數(shù)據(jù)在ES中的存儲(chǔ)和查詢都非常高效。
  • 數(shù)據(jù)分析:配合Kibana,對(duì)ES中的數(shù)據(jù)進(jìn)行實(shí)時(shí)的可視化分析,為數(shù)據(jù)決策提供數(shù)據(jù)支持。
  • 日志和監(jiān)控:ES可以作為日志和監(jiān)控?cái)?shù)據(jù)的存儲(chǔ)和分析平臺(tái)。通過收集系統(tǒng)的日志信息,存入ES,可以實(shí)現(xiàn)實(shí)時(shí)的日志查詢、分析、告警、展示。
  • 擴(kuò)展性:ES具有很好的擴(kuò)展性,可以水平擴(kuò)展到數(shù)百臺(tái)服務(wù)器,處理PB級(jí)別的數(shù)據(jù),使得ES能夠應(yīng)對(duì)海量數(shù)據(jù)的挑戰(zhàn)。

九、感覺Redis和Elasticsearch很像?微服務(wù)中Redis和Elasticsearch的區(qū)別

  • 數(shù)據(jù)存儲(chǔ)和查詢方式:Redis是一種基于鍵值對(duì)的存儲(chǔ)系統(tǒng),它提供高性能的讀寫操作,適用于存儲(chǔ)結(jié)構(gòu)簡單、查詢條件同樣簡單的應(yīng)用場景。而Elasticsearch是一個(gè)分布式搜索和分析引擎,適用于全文搜索、數(shù)據(jù)分析等復(fù)雜場景,能夠處理更復(fù)雜的查詢需求。
  • 數(shù)據(jù)結(jié)構(gòu)與處理能力:Redis支持豐富的數(shù)據(jù)結(jié)構(gòu),如字符串、哈希、列表、集合等,并提供了原子性的操作,適用于實(shí)現(xiàn)緩存、消息隊(duì)列、計(jì)數(shù)器等功能。而Elasticsearch則是基于倒排索引的數(shù)據(jù)結(jié)構(gòu),提供了強(qiáng)大的搜索和分析能力。但相對(duì)于Redis,Elasticsearch的寫入效率較低。
  • 實(shí)時(shí)性和一致性:Redis提供了很高的實(shí)時(shí)性,Redis將數(shù)據(jù)存儲(chǔ)到內(nèi)存中,能夠很快的進(jìn)行讀寫操作;而Elasticsearch是一個(gè)近實(shí)時(shí)的搜索平臺(tái),實(shí)時(shí)性不如Redis。
  • 擴(kuò)展性:Redis是通過增加Redis實(shí)例的形式實(shí)現(xiàn)擴(kuò)展,對(duì)非常大的數(shù)據(jù)集可能要進(jìn)行數(shù)據(jù)分片;而Elasticsearch具有水平擴(kuò)展的能力,可以通過添加更多的節(jié)點(diǎn)來提高系統(tǒng)的處理能力,適用于大量數(shù)據(jù)的場景。


分享文章:沒用過微服務(wù)?別慌,丐版架構(gòu)圖,讓你輕松拿捏面試官
瀏覽地址:http://m.5511xx.com/article/codgigh.html