国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【虹科干貨】設(shè)計微服務(wù)架構(gòu)的原則

這篇具有很好參考價值的文章主要介紹了【虹科干貨】設(shè)計微服務(wù)架構(gòu)的原則。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

微服務(wù)是一種軟件架構(gòu)策略,有利于改善整體性能和可擴展性。你可能會想,我的團隊需不需要采用微服務(wù),設(shè)計微服務(wù)架構(gòu)有哪些原則?本文會給你一些靈感。

文章速覽:

  • 微服務(wù)設(shè)計
  • 通過領(lǐng)域驅(qū)動設(shè)計實施微服務(wù)
  • 選擇技術(shù)棧
  • 微服務(wù)設(shè)計架構(gòu)的5個原則

?

微服務(wù)是一種軟件架構(gòu)策略,將應(yīng)用程序分解為一組解耦的、自治的服務(wù)。這些獨立的應(yīng)用服務(wù)通過API相互通信。每個服務(wù)都由其專業(yè)領(lǐng)域的專家團隊管理,以便每個軟件開發(fā)團隊可以控制自己的開發(fā)周期,按照自己的時間表進行測試和部署,使用自己的企業(yè)工具和資源,加速上線時間。為了評估你的團隊是否需要采用微服務(wù)架構(gòu)。這里有一些值得深入討論的細(xì)節(jié)。

一、微服務(wù)設(shè)計

設(shè)計微服務(wù)架構(gòu)的第一步是形勢評估。開發(fā)者網(wǎng)站(Developer.com)總結(jié)的十大微服務(wù)設(shè)計原則之一是單一責(zé)任原則,每個服務(wù)只需要將其所有資源投入到微服務(wù)應(yīng)用程序的一個功能中。

1.通過領(lǐng)域驅(qū)動設(shè)計實施微服務(wù)

軟件架構(gòu)師需要進行領(lǐng)域分析,以確定如何劃分每個服務(wù)以及需要將哪些元素納入應(yīng)用堆棧中。這種領(lǐng)域分析被稱為領(lǐng)域驅(qū)動設(shè)計(Domain Driven Design, DDD。它將實體模式和聚合模式等模式應(yīng)用到單個限界上下文bounded context)中,以便以高的計算精度來識別單個域的邊界。

總之,應(yīng)該圍繞特定的業(yè)務(wù)功能構(gòu)建每個微服務(wù)。一旦確定了領(lǐng)域并了解了它們的邊界,就可以定義最適合應(yīng)用堆棧的變量。

?

2.選擇技術(shù)棧

創(chuàng)建微服務(wù)技術(shù)棧較為特別。通常需要使用各種工具、框架和編程語言,將它們整合成一個耦合的系統(tǒng)。在選擇工具時考慮以下變量:

?

1)?編程語言

選擇用于微服務(wù)的最佳編程語言,取決于你最熟悉哪種語言、可用于所需功能的庫以及每種語言提供的功能套件。顯然,選擇你的開發(fā)團隊已經(jīng)大范圍使用的語言可以節(jié)省時間和精力。

根據(jù)2021JetBrains關(guān)于微服務(wù)的調(diào)查,用于微服務(wù)開發(fā)的三種最流行的語言是Java41%)、JavaScript37%)和Python25%。這些流行的編程語言都有大量的在線開發(fā)者支持、成功應(yīng)用開發(fā)的示例、運行環(huán)境,比如Node.JS,以及豐富的客戶端庫。

總之,確保所選的語言適合當(dāng)前業(yè)務(wù)問題。例如,Python在數(shù)據(jù)分析中很受歡迎,而JavaScript是全棧開發(fā)的最優(yōu)選擇。

?

2) 數(shù)據(jù)庫

在為微服務(wù)架構(gòu)構(gòu)建的應(yīng)用程序選擇適合的數(shù)據(jù)庫時,應(yīng)將可伸縮性、可用性和安全性置于首要位置。選擇一個最能支持在微服務(wù)中計劃使用的數(shù)據(jù)模型的數(shù)據(jù)庫。的技術(shù)棧應(yīng)該能夠處理任何應(yīng)用負(fù)載,確保使用故障切換協(xié)議可用性,并保護應(yīng)用免受惡意攻擊。

?

3)通信

的業(yè)務(wù)功能可能需要您的微服務(wù)使用同步的服務(wù)間通信方法執(zhí)行某些操作,對于其他操作,可能需要使用異步通信。可以使用多種通信格式和協(xié)議來輔助微服務(wù)通信,包括HTTP/REST、gRPCAMQP

對于異步通信,使用支持消費者組的事件驅(qū)動消息代理可以提高可伸縮性和可靠性,確保應(yīng)用程序能夠擴展,而不會導(dǎo)致任何服務(wù)無法訪問的情況。

?

4)監(jiān)控

每個微服務(wù)團隊都負(fù)責(zé)監(jiān)視應(yīng)用程序性能,通常使用日志記錄和可觀察性工具來跟蹤操作。這使得開發(fā)人員和運維人員可以跟蹤整個系統(tǒng),如應(yīng)用程序性能、消息代理流與數(shù)據(jù)庫資源利用率。

在使用消息代理時,考慮使用一個日志流,其中每個微服務(wù)都可以發(fā)布消息。這樣,您可以將首選的日志記錄和可觀察性工具連接到流,并在不減慢應(yīng)用程序的情況下異步監(jiān)視您的應(yīng)用程序。

?

二、微服務(wù)架構(gòu)設(shè)計的5個原則

那么,如何確保的微服務(wù)架構(gòu)可以發(fā)揮最佳作用?以下是五個微服務(wù)應(yīng)用程序設(shè)計原則,可供參考。

1.低耦合和高內(nèi)聚

低耦合和高內(nèi)聚可以通過前面提到的單一責(zé)任原則來解釋賦予每個領(lǐng)域團隊單一的職責(zé),有助于加強該領(lǐng)域內(nèi)的內(nèi)聚,使得該服務(wù)內(nèi)的所有功能都在某種程度上緊密耦合。每個服務(wù)都由其自己的領(lǐng)域?qū)<液凸ぞ吖芾?,但仍然可以通過API和其他協(xié)議相互通信。這有點像來自不同部門的同事如何互動:當(dāng)有助于完成工作時,大家彼此分享信息,而不會過多地談?wù)撆c他人無關(guān)的細(xì)節(jié)。

?

2.適應(yīng)性

業(yè)務(wù)應(yīng)用程序很少是靜止不變的。隨著新的業(yè)務(wù)需求的出現(xiàn),行業(yè)的假設(shè)發(fā)生變化,技術(shù)能力提供更多功能,軟件也會發(fā)生變化。微服務(wù)應(yīng)該具有可適應(yīng)性,以滿足新需求出現(xiàn)時可以進行適應(yīng)。世界在變化,人們在變化,所以軟件也應(yīng)該變化。

?

3.基礎(chǔ)設(shè)施自動化

實現(xiàn)微服務(wù)的一個原因是它們能夠自動化流程,從而提高整體可擴展性。借助 Kubernetes 等容器編排系統(tǒng),您可以使用單個鏡像與微服務(wù)一起部署微服務(wù)的整個數(shù)據(jù)庫。在Kubernetes控制器的幫助下,這些可移植性優(yōu)勢可以幫助DevOps團隊管理、調(diào)度和編排自動容器部署。

?

4.離散邊界

實施微服務(wù)要求在任何給定應(yīng)用程序中的服務(wù)都要維護自己的分散數(shù)據(jù)。服務(wù)邊界應(yīng)該將與任何單個服務(wù)相關(guān)的所有邏輯和數(shù)據(jù)與應(yīng)用程序中的其他服務(wù)隔離開。

這也是允許容器化微服務(wù)進行獨立部署的邏輯。這個原則也有一些反對者,他們認(rèn)為這會導(dǎo)致數(shù)據(jù)冗余激增。但建立這些明確的邊界最大的好處之一是:當(dāng)一個微服務(wù)承載自己的數(shù)據(jù)時,任何奇怪的行為都被限制在微服務(wù)內(nèi)部。

?

5.為故障而設(shè)計

干擾是經(jīng)常發(fā)生的,應(yīng)用服務(wù)會在毫無征兆的情況下癱瘓。例如,挖掘機開挖光纜中斷網(wǎng)絡(luò)操作,人們會忘記續(xù)訂域名,系統(tǒng)會因防火墻故障引起的數(shù)據(jù)連接問題而中斷等。所以,需要盡力考慮潛在的故障的可實施對策。設(shè)計具有彈性的解決方案,比如使用斷路器模式,以防止當(dāng)某個微服務(wù)無法執(zhí)行給定操作時其他服務(wù)中斷。文章來源地址http://www.zghlxwxcb.cn/news/detail-746246.html

到了這里,關(guān)于【虹科干貨】設(shè)計微服務(wù)架構(gòu)的原則的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 干貨|PCB電路板的組成、設(shè)計、工藝、流程及元器擺放和布線原則

    干貨|PCB電路板的組成、設(shè)計、工藝、流程及元器擺放和布線原則

    ? ? 大家對PCB電路板電路這個詞很熟,有的了解PCB電路板的組成,有的了解PCB電路板的設(shè)計步驟,有的了解PCB電路板的制作工藝......但是對整個PCB電路板的組成、設(shè)計、工藝、流程及元器件擺放和布線原則,及后期的注意事項沒有一個綜合的了解。好吧,海翎光電的小編把這

    2024年02月06日
    瀏覽(20)
  • 深入理解設(shè)計原則之里氏替換原則(LSP)【軟件架構(gòu)設(shè)計】

    深入理解設(shè)計原則之里氏替換原則(LSP)【軟件架構(gòu)設(shè)計】

    C++高性能優(yōu)化編程系列 深入理解軟件架構(gòu)設(shè)計系列 深入理解設(shè)計模式系列 高級C++并發(fā)線程編程 里氏替換原則(Liskov Substitution Principle, LSP)于1986年有Barbara Liskov提出,他當(dāng)時是這樣描述這條原則的: 如果S是T的子類型,那么T的對象可以被S的對象所替換,并不影響代碼的運行

    2024年02月07日
    瀏覽(23)
  • 架構(gòu)篇09:架構(gòu)設(shè)計原則案例

    架構(gòu)篇09:架構(gòu)設(shè)計原則案例

    我們先復(fù)習(xí)一下架構(gòu)設(shè)計的三條核心原則: 合適原則 、 簡單原則 和 演化原則 。 我們在架構(gòu)設(shè)計實踐中,應(yīng)該時刻謹(jǐn)記這三條設(shè)計原則,指導(dǎo)我們設(shè)計出合適的架構(gòu),即使是代表中國互聯(lián)網(wǎng)技術(shù)最頂尖水平的 BAT,其架構(gòu)的發(fā)展歷程也同樣遵循這三條原則。 今天就以大家耳

    2024年01月23日
    瀏覽(19)
  • 架構(gòu)師必須掌握的架構(gòu)設(shè)計原則

    架構(gòu)師必須掌握的架構(gòu)設(shè)計原則

    來自 Craig Larman 的軟件設(shè)計書《UML 和模式應(yīng)用》,Larman 在書中提出軟件設(shè)計的關(guān)鍵任務(wù)是職責(zé)分配,并提煉總結(jié)出 9 種 (5 種核心 +4 種擴展) 軟件職責(zé)分配模式,這些模式是比 GoF 設(shè)計模式更抽象的元模式。 信息專家 (Information Expert) 為對象分配職責(zé)的通用原則 – 把職責(zé)分配

    2024年02月08日
    瀏覽(17)
  • 七大軟件架構(gòu)設(shè)計原則詳解

    目錄 1、概述 2、七大設(shè)計原則 2.1、開閉原則 2.2、里氏替換原則 2.3、依賴倒置原則

    2024年02月05日
    瀏覽(17)
  • Kubernetes 架構(gòu)原則和對象設(shè)計

    云計算平臺的分類? 以O(shè)penstack為典型的虛擬化平臺 虛擬機構(gòu)建和業(yè)務(wù)代碼部署分離。 可變的基礎(chǔ)架構(gòu)使后續(xù)維護風(fēng)險變大。 以谷歌borg為典型的基于進程的作業(yè)調(diào)度平臺 技術(shù)的迭代引發(fā)borg的換代需求。 早期的隔離依靠chrootjail實現(xiàn),一些不合理的設(shè)計需要在新產(chǎn)品中改進。

    2024年02月06日
    瀏覽(17)
  • 【虹科干貨】邏輯數(shù)據(jù)庫可能已經(jīng)無法滿足需求了!

    不可否認(rèn),單個Redis實例已經(jīng)不能滿足實際生產(chǎn)中的需求了。為了解決由此帶來的問題,何不試試用專用實例代替邏輯數(shù)據(jù)庫呢? 一、邏輯數(shù)據(jù)庫可能已經(jīng)無法滿足需求的4個跡象 1.您有個“吵鬧的鄰居” PS:“吵鬧的鄰居”指同一個Redis OSS實例中其它繁忙的邏輯數(shù)據(jù)庫。

    2024年02月07日
    瀏覽(17)
  • 軟件開發(fā)、設(shè)計、架構(gòu)的其他原則

    軟件開發(fā)、設(shè)計、架構(gòu)的其他原則

    LOD:迪米特法則(Law of Demeter) CRP:合成復(fù)用原則(Composite Reuse Principle) DRY:不要重復(fù)你自己原則 (Don’t Repeat Yourself Principle) KISS:KISS原則 (Keep It Simple and Stupid Principle) YAGNI:你不需要它原則 (You aren\\\'t gonna need it Principle) 又叫最少知識原則(Least Knowledge Principle)。只和你的直接朋友交

    2024年02月02日
    瀏覽(24)
  • 云原生架構(gòu)設(shè)計原則及典型技術(shù)

    云原生架構(gòu)設(shè)計原則及典型技術(shù)

    云原生是面向云應(yīng)用設(shè)計的一種思想理念,充分發(fā)揮云效能的最佳實踐路徑,幫助企業(yè)構(gòu)建彈性可靠、松耦合、易管理可觀測的應(yīng)用系統(tǒng),提升交付效率,降低運維復(fù)雜度。代表技術(shù)包括不可變基礎(chǔ)設(shè)施、服務(wù)網(wǎng)格、聲明式 API 及 Serverless 等。 從產(chǎn)業(yè)效用方面來看,云原生極

    2024年02月11日
    瀏覽(29)
  • 【虹科干貨】談?wù)凴edis Enterprise實時搜索的過人之處

    【虹科干貨】談?wù)凴edis Enterprise實時搜索的過人之處

    我們都知道,用戶在使用應(yīng)用程序時候,對于速度有著越來越高的要求,真可謂是 “一秒也等不及”。而開發(fā)團隊又該怎樣來滿足這種對于實時性的期望呢? ? 文章速覽: ? Redis Enterprise 實時搜索的應(yīng)用場景 利用索引為開發(fā)人員帶來更好的體驗 Redis Enterprise 實時搜索的優(yōu)勢

    2024年02月08日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包