国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    5332

    瀏覽量

    91576
  • 架構
    +關注

    關注

    1

    文章

    532

    瀏覽量

    26589
  • 微服務
    +關注

    關注

    0

    文章

    150

    瀏覽量

    8102
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    光伏四可裝置軟件系統架構微服務化設計與容器化部署方案

    ,某一模塊升級需整體停機,無法適配光伏場景對實時性與連續性的要求;物理機部署模式則導致環境一致性差,跨場景遷移成本高。為此,基于微服務化設計與容器化部署的軟件架構應運而生,通過“功能解耦、彈性部署、高效
    的頭像 發表于 03-03 15:47 ?160次閱讀

    基于OpenTelemetry的全鏈路追蹤微服務可觀測性實踐

    微服務拆分到第三年,我們的服務數量從最初的5個膨脹到了47個。一個用戶下單請求要經過API Gateway -> 用戶服務 -> 商品服務 -> 庫存
    的頭像 發表于 02-26 15:43 ?134次閱讀

    Istio服務網格生產環境性能調優的最佳實踐

    隨著微服務架構的普及,服務間通信的復雜度呈指數級增長。傳統的應用層負載均衡和服務發現方案已經無法滿足現代云原生應用的需求。Istio作為目前最成熟的
    的頭像 發表于 01-20 15:40 ?205次閱讀

    嵌入式軟件分層架構設計原則

    嵌入式軟件分層架構的設計原則如下: 模塊化和可擴展性:每一層應當保持松耦合,這樣當硬件變化或某些功能擴展時,只需要修改對應的層次,而不影響整體架構。 硬件無關性:上層代碼應當盡量避免直接依賴硬件
    發表于 11-28 07:05

    RESTful API設計原則: 構建易用、可擴展的API接口。

    一、理解REST架構的核心約束 1.1 RESTful API的六大基本原則 Roy Fielding博士在其博士論文中定義了REST架構的六大核心約束: 統一接口(Uniform
    的頭像 發表于 10-24 10:45 ?482次閱讀

    RESTful API設計原則: 構建易用、可擴展的API接口

    在當今微服務架構和分布式系統盛行的時代,RESTful API已成為系統間通信的核心橋梁。優秀的API設計不僅能提升開發效率,還能顯著降低系統維護成本。本文將深入探討如何遵循REST
    的頭像 發表于 10-20 13:45 ?793次閱讀

    華納云VPS容器服務網格流量管理:實現微服務高效路由

    在云計算和微服務架構日益普及的今天,華納云香港VPS憑借其優越的地緣優勢和網絡自由,成為眾多企業部署容器化應用的熱門選擇。復雜的微服務架構帶來了流量管理的巨大挑戰。本文將深入探討如何利
    的頭像 發表于 10-16 17:09 ?528次閱讀

    基于RFID與微服務架構的智能倉庫管理系統:實現倉儲數據的全鏈路精準采集與管控

    針對傳統倉儲管理中普遍存在的賬實不符、流程效率低下及信息孤島等問題,本文介紹一套基于RFID射頻識別技術與微服務軟件架構的智能倉庫管理系統。系統通過“一物一碼”的電子身份標識,實現了對物資從入庫
    的頭像 發表于 10-13 11:18 ?764次閱讀
    基于RFID與<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>的智能倉庫管理系統:實現倉儲數據的全鏈路精準采集與管控

    如何基于Nginx構建微服務網關

    今天,我將分享我們團隊如何基于Nginx構建了一個日均處理10億+請求的微服務網關,以及踩過的那些坑。這套方案已經穩定運行2年+,經歷過多次大促考驗。
    的頭像 發表于 09-02 16:29 ?820次閱讀

    Jtti海外VPS微服務架構下的日志采集與分析優化方案

    隨著跨境業務和分布式應用的普及,越來越多的企業在海外VPS上構建微服務架構,以提升系統擴展性和靈活性。然而,微服務化帶來了一個新的挑戰:日志數據分散在多個服務和節點中,若缺乏統一采集與
    的頭像 發表于 08-27 17:13 ?567次閱讀

    Jtti.cc零信任安全防護架構實施在VPS云服務器構建指南

    VPS云服務器上構建零信任安全體系,從身份驗證、微隔離到持續監測,提供一套完整的實施框架。 零信任安全防護架構實施在VPS云服務器構建指南 零信任安全模型 的核心原則解析 零信任安全防
    的頭像 發表于 08-21 15:39 ?773次閱讀

    深入剖析RabbitMQ高可用架構設計

    微服務架構中,消息隊列故障導致的系統不可用率高達27%!如何構建一個真正可靠的消息中間件架構?本文將深入剖析RabbitMQ高可用設計的核心要點。
    的頭像 發表于 08-18 11:19 ?955次閱讀

    電商API的微服務架構優化策略

    ? 隨著電子商務的快速發展,API(應用程序編程接口)已成為電商平臺的核心組件,負責連接用戶、商家和后臺系統。微服務架構通過將應用拆分為獨立、可擴展的服務單元,顯著提升了系統的靈活性和可維護性。然而
    的頭像 發表于 07-23 14:30 ?621次閱讀
    電商API的<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>優化策略

    蔡司“微服務”——全能在線售后管家,24小時守護您的設備!

    還在為設備故障煩惱? 急需技術支援卻找不到人? 想快速獲取用戶手冊或軟件升級? 現在 只需微信掃一掃設備上的藍色標簽二維碼 蔡司“微服務”一鍵觸達! 9大功能板塊 全方位解決您的售后需求 服務更高
    發表于 07-10 16:44 ?1566次閱讀
    蔡司“<b class='flag-5'>微服務</b>”——全能在線售后管家,24小時守護您的設備!

    企業使用NVIDIA NeMo微服務構建AI智能體平臺

    已發布的 NeMo 微服務可與合作伙伴平臺集成,作為創建 AI 智能體的構建模塊,使用商業智能與強大的邏輯推理模型 (包括 NVIDIA Llama Nemotron) 處理更多任務。
    的頭像 發表于 04-27 15:05 ?1281次閱讀