在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

設計微服務架構的原則

虹科網絡可視化技術 ? 2023-11-26 08:05 ? 次閱讀

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

文章速覽:

微服務設計的要素

微服務架構設計的5個原則

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

一、微服務設計的要素

設計微服務架構的第一步是形勢評估。開發者網站總結的十大微服務設計原則之一是單一責任原則,即每個服務只需要將其所有資源投入到微服務應用程序的一個功能中。

1.通過領域驅動設計實施微服務

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

總之,應該圍繞特定的業務功能構建每個微服務。一旦確定了領域并了解了它們的邊界,就可以定義最適合應用堆棧的變量了。

2.選擇技術棧

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

編程語言

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

根據2021年JetBrains關于微服務的調查,“用于微服務開發的三種最流行的語言是Java(41%)、JavaScript(37%)和Python(25%)”。這些流行的編程語言都有大量的在線開發者支持、成功應用開發的示例、運行環境,比如Node.JS,以及豐富的客戶端庫。

總之,確保所選的語言適合當前業務問題。例如,Python在數據分析中很受歡迎,而JavaScript是全棧開發的最優選擇。

數據庫

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

通信

你的業務功能可能需要您的微服務使用同步的服務間通信方法執行某些操作,對于其他操作,可能需要使用異步通信。可以使用多種通信格式和協議來輔助微服務通信,包括HTTP/REST、gRPC和AMQP。

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

監控

每個微服務團隊都負責監視應用程序性能,通常使用日志記錄和可觀察性工具來跟蹤操作。這使得開發人員和運維人員可以跟蹤整個系統,如應用程序性能、消息代理流與數據庫資源利用率。

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

二、微服務架構設計的5個原則

那么,如何確保你的微服務架構可以發揮最佳作用?以下是五個微服務應用程序設計原則,可供你參考。

1.低耦合和高內聚

低耦合和高內聚可以通過前面提到的單一責任原則來解釋。賦予每個領域團隊單一的職責,有助于加強該領域內的內聚,使得該服務內的所有功能都在某種程度上緊密耦合。每個服務都由其自己的領域專家和工具管理,但仍然可以通過API和其他協議相互通信。這有點像來自不同部門的同事如何互動:當有助于完成工作時,大家彼此分享信息,而不會過多地談論與他人無關的細節。

2.適應性

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

3.基礎設施自動化

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

4.離散邊界

實施微服務要求在任何給定應用程序中的服務都要維護自己的分散數據。服務邊界應該將與任何單個服務相關的所有邏輯和數據與應用程序中的其他服務隔離開。

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

5.為故障而設計

干擾是經常發生的,應用服務會在毫無征兆的情況下癱瘓。例如,挖掘機開挖光纜中斷網絡操作,人們會忘記續訂域名,系統會因防火墻故障引起的數據連接問題而中斷等。所以,需要盡力考慮潛在的故障的可實施對策。設計具有彈性的解決方案,比如使用斷路器模式,以防止當某個微服務無法執行給定操作時其他服務中斷。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 軟件
    +關注

    關注

    69

    文章

    5126

    瀏覽量

    88991
  • 架構
    +關注

    關注

    1

    文章

    528

    瀏覽量

    25873
  • 微服務
    +關注

    關注

    0

    文章

    145

    瀏覽量

    7683
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    微服務架構幾種典型的基礎框架,你了解嗎?

    SpringCloud、Dubbo、Dropwizard、Akka等是常見微服務框架。SpringCloud基于SpringBoot,生態豐富;Dropwizard輕量且繼承SpringBoot優點
    的頭像 發表于 03-04 11:05 ?355次閱讀

    NVIDIA 發布保障代理式 AI 應用安全的 NIM 微服務

    NVIDIA NeMo Guardrails 包含全新 NVIDIA NIM 微服務,能夠為各行業構建 AI 的企業提高 AI 的準確性、安全性和可控性。 ? AI 智能體有望成為能夠完成各種任務
    發表于 01-17 16:29 ?146次閱讀

    微服務容器化部署好處多嗎?

    微服務容器化部署好處有很多,包括環境一致性、資源高效利用、快速部署與啟動、隔離性與安全性、版本控制與回滾以及持續集成與持續部署。這些優勢助力應用可靠穩定運行,提升開發運維效率,是現代軟件架構的優質選擇。UU云小編認為微服務容器化
    的頭像 發表于 01-17 10:22 ?301次閱讀

    容器化能替代微服務嗎?兩者有何區別

    容器化不能替代微服務,但它是微服務的解決方案之一。微服務架構的核心在于將大型應用程序拆分為一系列小型、獨立的服務,每個
    的頭像 發表于 01-13 10:40 ?366次閱讀

    Java微服務中如何確保安全性?

    在Java微服務架構中確保安全性,可以采取以下措施: 身份驗證與授權: 使用OAuth 2.0和OpenID Connect框架進行身份驗證和授權。OAuth2允許用戶在不分享憑證的情況下授權第三方
    的頭像 發表于 01-02 15:21 ?579次閱讀

    寶藏級微服務架構工具合集

    寶藏級熱門微服務架構工具包含Spring Boot、Eclipse Vert.X、Kubernetes、Tyk、RabbitMQ、Apache Kafka等。其中,Spring Boot簡化了微服務
    的頭像 發表于 12-21 16:33 ?573次閱讀

    k8s微服務架構就是云原生嗎?兩者是什么關系

    k8s微服務架構就是云原生嗎?K8s微服務架構并不等同于云原生,但兩者之間存在密切的聯系。Kubernetes在云原生架構中扮演著核心組件的
    的頭像 發表于 11-25 09:39 ?476次閱讀

    SSR與微服務架構的結合應用

    隨著互聯網技術的快速發展,前端技術棧不斷更新迭代,后端架構也經歷了從單體應用到微服務的變革。在這個過程中,服務端渲染(SSR)作為一種提升頁面加載速度和SEO性能的技術,與微服務
    的頭像 發表于 11-18 11:34 ?762次閱讀

    架構與設計 常見微服務分層架構的區別和落地實踐

    架構風格越傾向于清晰的職責定位,且讓領域模型成為架構的核心。 基于這些架構風格,在軟件架構設計過程中又有非常多的架構分層模型。 傳統三層
    的頭像 發表于 10-22 15:34 ?596次閱讀
    <b class='flag-5'>架構</b>與設計 常見<b class='flag-5'>微服務</b>分層<b class='flag-5'>架構</b>的區別和落地實踐

    微服務架構與容器云的關系與區別

    微服務架構與容器云密切相關又有所區別。微服務將大型應用拆分為小型、獨立的服務,而容器云基于容器技術,為微服務提供構建、發布和運行的平臺。區別
    的頭像 發表于 10-21 17:28 ?502次閱讀

    入門級攻略:如何容器化部署微服務

    第一步理解容器化基礎,第二步創建Dockerfile,第三步構建推送鏡像,第四步部署微服務,第五步管理微服務、第六步優化更新。容器化部署微服務是現代軟件開發中的一種高效方法,可提供良好的可移植性、可擴展性和管理性。容器化部署
    的頭像 發表于 10-09 10:08 ?352次閱讀

    Proxyless的多活流量和微服務治理

    1. 引言 1.1 項目的背景及意義 在當今的微服務架構中,應用程序通常被拆分成多個獨立的服務,這些服務通過網絡進行通信。這種架構的優勢在于
    的頭像 發表于 08-28 16:54 ?1936次閱讀
    Proxyless的多活流量和<b class='flag-5'>微服務</b>治理

    NVIDIA NIM微服務帶來巨大優勢

    服務通過熱門 AI 模型為數百萬開發者帶來高達 5 倍的 token 效率提升,使他們能夠立即訪問在 NVIDIA DGX Cloud 上運行的 NIM 微服務
    的頭像 發表于 08-23 15:20 ?891次閱讀

    采用OpenUSD和NVIDIA NIM微服務創建精準品牌視覺

    全球領先的創意和制作服務機構率先采用 OpenUSD 和 NVIDIA NIM 微服務來創建精準的品牌視覺。
    的頭像 發表于 08-01 14:33 ?675次閱讀

    全新 NVIDIA NeMo Retriever微服務大幅提升LLM的準確性和吞吐量

    企業能夠通過提供檢索增強生成功能的生產就緒型 NVIDIA NIM 推理微服務,充分挖掘業務數據的價值。這些微服務現已集成到 Cohesity、DataStax、NetApp 和 Snowflake 平臺中。
    的頭像 發表于 07-26 11:13 ?1211次閱讀
    全新 NVIDIA NeMo Retriever<b class='flag-5'>微服務</b>大幅提升LLM的準確性和吞吐量
    主站蜘蛛池模板: 五月婷婷色 | 另类五月 | 日本黄色免费在线 | 操操插插 | 8888奇米四色在线 | 天天干天天干天天干天天干天天干 | 在线亚洲色图 | 四虎4hu| 天天操天天摸天天碰 | 久久男人网 | 欧美系列在线播放 | 久久澳门 | 五月激情丁香网 | 日韩午夜免费 | 狠狠色丁香久久综合五月 | 欧美成网 | 四虎永久免费在线观看 | 六月婷婷综合 | 久久夜色精品 | 97人人插| 欧美19禁| 国产一区二区高清在线 | 自拍偷拍欧美 | 国产 日韩 欧美 高清 | 亚洲 午夜在线一区 | 国产片一级aaa毛片视频 | 性色网址 | 免费国产成高清人在线视频 | 天天欧美 | 天天操天天舔天天射 | 国产精品欧美一区二区三区不卡 | 美国一级毛片片aa久久综合 | 口述他拿舌头进去我下面好爽 | 视频一区日韩 | 国产色司机在线视频免费观看 | 亚洲一区二区视频在线观看 | 国产精品天天看天天爽 | 一区二区三区在线免费 | 草草影院私人免费入口 | 国产午夜a理论毛片在线影院 | 韩国激情啪啪 |