91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

設(shè)計(jì)微服務(wù)架構(gòu)的原則

虹科網(wǎng)絡(luò)可視化技術(shù) ? 2023-11-26 08:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

文章速覽:

微服務(wù)設(shè)計(jì)的要素

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

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

一、微服務(wù)設(shè)計(jì)的要素

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

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

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

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

2.選擇技術(shù)棧

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

編程語(yǔ)言

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

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

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

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

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

通信

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

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

監(jiān)控

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

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

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

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

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

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

2.適應(yīng)性

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

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

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

4.離散邊界

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    5332

    瀏覽量

    91568
  • 架構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    532

    瀏覽量

    26589
  • 微服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    150

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    光伏四可裝置軟件系統(tǒng)架構(gòu)微服務(wù)化設(shè)計(jì)與容器化部署方案

    ,某一模塊升級(jí)需整體停機(jī),無(wú)法適配光伏場(chǎng)景對(duì)實(shí)時(shí)性與連續(xù)性的要求;物理機(jī)部署模式則導(dǎo)致環(huán)境一致性差,跨場(chǎng)景遷移成本高。為此,基于微服務(wù)化設(shè)計(jì)與容器化部署的軟件架構(gòu)應(yīng)運(yùn)而生,通過(guò)“功能解耦、彈性部署、高效
    的頭像 發(fā)表于 03-03 15:47 ?127次閱讀

    基于OpenTelemetry的全鏈路追蹤微服務(wù)可觀測(cè)性實(shí)踐

    微服務(wù)拆分到第三年,我們的服務(wù)數(shù)量從最初的5個(gè)膨脹到了47個(gè)。一個(gè)用戶下單請(qǐng)求要經(jīng)過(guò)API Gateway -> 用戶服務(wù) -> 商品服務(wù) -> 庫(kù)存
    的頭像 發(fā)表于 02-26 15:43 ?129次閱讀

    Istio服務(wù)網(wǎng)格生產(chǎn)環(huán)境性能調(diào)優(yōu)的最佳實(shí)踐

    隨著微服務(wù)架構(gòu)的普及,服務(wù)間通信的復(fù)雜度呈指數(shù)級(jí)增長(zhǎng)。傳統(tǒng)的應(yīng)用層負(fù)載均衡和服務(wù)發(fā)現(xiàn)方案已經(jīng)無(wú)法滿足現(xiàn)代云原生應(yīng)用的需求。Istio作為目前最成熟的
    的頭像 發(fā)表于 01-20 15:40 ?203次閱讀

    嵌入式軟件分層架構(gòu)設(shè)計(jì)原則

    嵌入式軟件分層架構(gòu)的設(shè)計(jì)原則如下: 模塊化和可擴(kuò)展性:每一層應(yīng)當(dāng)保持松耦合,這樣當(dāng)硬件變化或某些功能擴(kuò)展時(shí),只需要修改對(duì)應(yīng)的層次,而不影響整體架構(gòu)。 硬件無(wú)關(guān)性:上層代碼應(yīng)當(dāng)盡量避免直接依賴硬件
    發(fā)表于 11-28 07:05

    RESTful API設(shè)計(jì)原則: 構(gòu)建易用、可擴(kuò)展的API接口。

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

    RESTful API設(shè)計(jì)原則: 構(gòu)建易用、可擴(kuò)展的API接口

    在當(dāng)今微服務(wù)架構(gòu)和分布式系統(tǒng)盛行的時(shí)代,RESTful API已成為系統(tǒng)間通信的核心橋梁。優(yōu)秀的API設(shè)計(jì)不僅能提升開(kāi)發(fā)效率,還能顯著降低系統(tǒng)維護(hù)成本。本文將深入探討如何遵循REST
    的頭像 發(fā)表于 10-20 13:45 ?792次閱讀

    華納云VPS容器服務(wù)網(wǎng)格流量管理:實(shí)現(xiàn)微服務(wù)高效路由

    在云計(jì)算和微服務(wù)架構(gòu)日益普及的今天,華納云香港VPS憑借其優(yōu)越的地緣優(yōu)勢(shì)和網(wǎng)絡(luò)自由,成為眾多企業(yè)部署容器化應(yīng)用的熱門(mén)選擇。復(fù)雜的微服務(wù)架構(gòu)帶來(lái)了流量管理的巨大挑戰(zhàn)。本文將深入探討如何利
    的頭像 發(fā)表于 10-16 17:09 ?527次閱讀

    基于RFID與微服務(wù)架構(gòu)的智能倉(cāng)庫(kù)管理系統(tǒng):實(shí)現(xiàn)倉(cāng)儲(chǔ)數(shù)據(jù)的全鏈路精準(zhǔn)采集與管控

    針對(duì)傳統(tǒng)倉(cāng)儲(chǔ)管理中普遍存在的賬實(shí)不符、流程效率低下及信息孤島等問(wèn)題,本文介紹一套基于RFID射頻識(shí)別技術(shù)與微服務(wù)軟件架構(gòu)的智能倉(cāng)庫(kù)管理系統(tǒng)。系統(tǒng)通過(guò)“一物一碼”的電子身份標(biāo)識(shí),實(shí)現(xiàn)了對(duì)物資從入庫(kù)
    的頭像 發(fā)表于 10-13 11:18 ?759次閱讀
    基于RFID與<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>的智能倉(cāng)庫(kù)管理系統(tǒng):實(shí)現(xiàn)倉(cāng)儲(chǔ)數(shù)據(jù)的全鏈路精準(zhǔn)采集與管控

    如何基于Nginx構(gòu)建微服務(wù)網(wǎng)關(guān)

    今天,我將分享我們團(tuán)隊(duì)如何基于Nginx構(gòu)建了一個(gè)日均處理10億+請(qǐng)求的微服務(wù)網(wǎng)關(guān),以及踩過(guò)的那些坑。這套方案已經(jīng)穩(wěn)定運(yùn)行2年+,經(jīng)歷過(guò)多次大促考驗(yàn)。
    的頭像 發(fā)表于 09-02 16:29 ?818次閱讀

    Jtti海外VPS微服務(wù)架構(gòu)下的日志采集與分析優(yōu)化方案

    隨著跨境業(yè)務(wù)和分布式應(yīng)用的普及,越來(lái)越多的企業(yè)在海外VPS上構(gòu)建微服務(wù)架構(gòu),以提升系統(tǒng)擴(kuò)展性和靈活性。然而,微服務(wù)化帶來(lái)了一個(gè)新的挑戰(zhàn):日志數(shù)據(jù)分散在多個(gè)服務(wù)和節(jié)點(diǎn)中,若缺乏統(tǒng)一采集與
    的頭像 發(fā)表于 08-27 17:13 ?566次閱讀

    Jtti.cc零信任安全防護(hù)架構(gòu)實(shí)施在VPS云服務(wù)器構(gòu)建指南

    VPS云服務(wù)器上構(gòu)建零信任安全體系,從身份驗(yàn)證、微隔離到持續(xù)監(jiān)測(cè),提供一套完整的實(shí)施框架。 零信任安全防護(hù)架構(gòu)實(shí)施在VPS云服務(wù)器構(gòu)建指南 零信任安全模型 的核心原則解析 零信任安全防
    的頭像 發(fā)表于 08-21 15:39 ?772次閱讀

    深入剖析RabbitMQ高可用架構(gòu)設(shè)計(jì)

    微服務(wù)架構(gòu)中,消息隊(duì)列故障導(dǎo)致的系統(tǒng)不可用率高達(dá)27%!如何構(gòu)建一個(gè)真正可靠的消息中間件架構(gòu)?本文將深入剖析RabbitMQ高可用設(shè)計(jì)的核心要點(diǎn)。
    的頭像 發(fā)表于 08-18 11:19 ?951次閱讀

    電商API的微服務(wù)架構(gòu)優(yōu)化策略

    ? 隨著電子商務(wù)的快速發(fā)展,API(應(yīng)用程序編程接口)已成為電商平臺(tái)的核心組件,負(fù)責(zé)連接用戶、商家和后臺(tái)系統(tǒng)。微服務(wù)架構(gòu)通過(guò)將應(yīng)用拆分為獨(dú)立、可擴(kuò)展的服務(wù)單元,顯著提升了系統(tǒng)的靈活性和可維護(hù)性。然而
    的頭像 發(fā)表于 07-23 14:30 ?620次閱讀
    電商API的<b class='flag-5'>微服務(wù)</b><b class='flag-5'>架構(gòu)</b>優(yōu)化策略

    蔡司“微服務(wù)”——全能在線售后管家,24小時(shí)守護(hù)您的設(shè)備!

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

    企業(yè)使用NVIDIA NeMo微服務(wù)構(gòu)建AI智能體平臺(tái)

    已發(fā)布的 NeMo 微服務(wù)可與合作伙伴平臺(tái)集成,作為創(chuàng)建 AI 智能體的構(gòu)建模塊,使用商業(yè)智能與強(qiáng)大的邏輯推理模型 (包括 NVIDIA Llama Nemotron) 處理更多任務(wù)。
    的頭像 發(fā)表于 04-27 15:05 ?1278次閱讀