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

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

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

3天內不再提示

微服務五大關鍵好處揭秘

lhl545545 ? 來源:電子發燒友網 ? 2018-02-09 08:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

在過去40 年里,軟件開發的世界日新月異,微服務日趨流行。本文為我們揭示了微服務的五大關鍵好處,看它們是如何幫助我們提升軟件質量并適應新的業務需求。

彈性

維基百科將彈性定義為系統處理變化的能力。我對彈性的理解是在問題被解決后系統從異常狀態(短暫的硬件故障以及意料之外的高網絡延遲等)或壓力期中優雅恢復,同時又不會影響系統性能的能力。

這雖然聽上去很簡單,但是在構建面向微服務軟件的時候,問題源會由于系統的分布式特性而被放大,有時很難(甚至不可能)防止所有的異常情況。

彈性是從錯誤中優雅恢復的能力。但它同樣也為系統帶來了新的復雜度:如果一個微服務出現了問題,我們能否防止系統的常規故障?理想情況下,我們應該以這樣一種方式來構建服務:僅對服務響應進行降級而非讓系統出現常規故障,即使這樣做也并不容易。

可伸縮性

如今,各大公司的一個通病是系統存在可伸縮性問題。如果你之前曾與某個單塊軟件打過交道,我確信你在伴隨公司的成長過程中,必定會在某些時刻遭遇到容量問題。

通常,這些問題并不涉及應用的每一層次或所有子系統。往往只有個別子系統或服務會明顯慢于其余部分,一旦沒有處理好容量問題就會導致整個應用發生故障。下圖描述了我們是如何對微服務進行擴展(擴展成兩個郵件服務)的,同時又不牽扯系統的其余部分:

微服務五大關鍵好處揭秘

讓我們來看一個關于車險的場景,用于計算指定風險因素列表報價的服務便是該類問題的一個例子。通過擴展整個應用來滿足對某個特定部分的需求是否有意義?如果你腦海中的答案是“否”,那么你離擁抱微服務更近了一步。微服務可以讓你僅僅按需擴展系統的一部分,從而只加大系統特定部分的處理能力。讓我們來看一個關于車險的場景,用于計算指定風險因素列表報價的服務便是該類問題的一個例子。通過擴展整個應用來滿足對某個特定部分的需求是否有意義?如果你腦海中的答案是“否”,那么你離擁抱微服務更近了一步。微服務可以讓你僅僅按需擴展系統的一部分,從而只加大系統特定部分的處理能力。

如果該保險系統是一個面向微服務的系統,那么我們只需要創建更多的微服務實例來負責計算就能解決報價計算需求過旺的問題。請記住,擴展服務會給運維團隊增加開銷。

技術多樣性

軟件的世界每幾個月就會更新換代。新語言進入業界成為某類系統事實標準的節奏片刻未停。幾年前, Ruby onRails面世并在 2013年成為在各種新項目中使用昀多的 Web框架。Golang(由 Google創建的一門語言)因其結合了強大的性能與優雅簡潔的語法而成為當前的一種趨勢,任何只要擁有一門編程語言經驗的人都可以在幾天內學會它。

在過去,我也曾使用 PythonJava成功編寫過微服務。

尤其是 Java,自從 Spring Boot發布之后,它成為在編寫敏捷微服務方面相當有吸引力的技術棧。

Django是一款強大且可用于編寫微服務的 Python框架,與 Ruby on Rails非常相似。通過它我們可以自動化地進行數據庫遷移,并可以非常輕松地完成創建 CRUD(創建、讀取、更新及刪除)服務的工作。

Node.js利用了著名語言 JavaScript的優勢,創建了一個新的服務端技術棧,從而改變了工程師們編寫新軟件的方式。

那么,將這些技術都結合起來會有什么問題嗎?平心而論,這是一個優勢:我們可以選擇合適的工具來做相對應的工作。

只要待集成的技術是標準化的,面向微服務的架構便可以幫你實現這一點。正如我們在上文中已經了解到的,一個微服務是非常小的,并且是一個自主運維的軟件中的獨立部分。

下圖展示了微服務是如何隱藏數據的存取邏輯的,兩個服務在存取數據方面共用同一個通信點,從而能很好地互相解耦(一個服務實現發生變化時并不涉及任何其他服務):

微服務五大關鍵好處揭秘

此前我們曾討論到性能的問題。通常,系統的某些部分會比其他部分承受更多的壓力。通過利用當代的多核 CPU進行并行(并發)編程可以解決其中的一些性能問題。然而, Node.js并不是一門適合執行并行任務的語言。針對那些處于壓力之下的微服務來說,我們可以選擇一門更加適合的語言來進行開發,比如 Erlang,從而可以以一種更加優雅的方式來管理并發。這樣做,花不了你兩周的時間。

在同一系統中使用多種技術存在著一個問題:開發人員和系統管理員需要知道所有的(或一部分)相關技能。擁抱微服務的公司通常可以秉持一門核心技術(在本書中,我們將會使用 Node.js),并輔以一些其他技術(我們除了使用 Docker來管理部署之外,還可以采用 Capistrano或 Fabricator來管理發布)。

可替換性

可替換性是指替換系統中某個組件而不影響系統行為的一種能力。當我們在討論軟件的時候,可替換性往往是與低耦合密不可分的。在編寫微服務的時候不能將內部邏輯暴露給調用服務,服務實現對客戶端來說是透明的,客戶端了解的只有接口。讓我們來看看下面的例子,該接口是用 Java編寫的,僅需通過觀察接口就能識別出它存在著什么問題。

public interface GeoIpService {

/**

*檢查IP是否屬于指定ISO代碼所對應的國家

**/

boolean isIn(String ip, String isoCode) throws

SOAPFaultException;

}

初看該接口可以發現它是自描述的。它將檢查特定 IP是否屬于特定的國家,一旦服務出現重大問題會拋出 SOAPFaultException。

如果我們構建客戶端來消費該接口,需要考慮到服務的上述邏輯,捕獲并處理 SoapFaultException。這等同于將服務內部實現的細節暴露給了外部世界,從而很難再替換掉 GeoIpService接口。同樣的,事實上我們創建的某個服務如果關聯了應用邏輯的某個部分則表明創建了一個限界上下文:即一個高內聚的服務或服務集(通過集合所轄服務的協同工作可以達成一個目標)。

獨立性

不管我們怎么努力,人類的大腦都不擅長解決復雜問題。人類大腦昀有效的運作模式是同一時間只做一件事情,所以我們可以將復雜問題拆解成更小的問題。面向微服務的架構應該也遵從這一方式:所有服務應該都是獨立的,它們通過接口進行交互。除了協定確認接口這一環節之外,不同的工程師團隊可以在無須交流的情況下完成對服務的開發。一家采用了微服務的公司可以根據業務的需求來調整工程師團隊的規模,從而能敏捷地響應業務的高峰期或靜默期。

為什么可替換性如此重要

在前面的一個小節中,我們討論了該如何確定微服務的合理規模。按照普遍的經驗而言,一個團隊應該能在一個 sprint內完成一個微服務的重寫和部署。這樣做的背后的根本原因就是技術債務。

我會將技術債務定義為在一個既定計劃的周期內,初始技術設計與預期交付功能之間的偏差。某些方面的犧牲或錯誤假設會導致編寫的軟件非常糟糕,這樣的軟件需要全盤重構或重寫。在前面的例子中,接口在暴露給外部世界時明確表明必須使用 SOAP來調用 Web服務。一旦需要將客戶端代碼改造成 REST客戶端,REST客戶端根本無法處理 SOAP異常。

易于部署

微服務應當易于部署。作為軟件開發者,我們知道在軟件的部署過程中很多事情都可能會出現問題。正如前面所提到的,微服務是非常易于部署的,原因如下:

?少量的業務邏輯(從經驗上來說是只需兩周即可完成從無到有的編寫)導致更易于部署。

?微服務是自治的工作單元,所以升級一個服務對于復雜系統來說是一個局部可控的問題。無須重新部署整個系統。

?微服務架構中的基礎設施和配置應該盡可能自動化。在本書的后續部分中,我們將學習如何使用 Docker來部署微服務,以及這樣做相比于傳統部署技術會有怎樣的優勢。

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

    關注

    0

    文章

    150

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    “點沙成金”的科技奇跡:深入解讀芯片制造三大階段與五大步驟

    芯片是如何“點沙成金”的?本文深度解析芯片制造的三大階段與五大步驟,從邏輯設計、晶圓拉制,到上百次的光刻-刻蝕循環,揭秘驅動數字世界的微觀奇跡。
    的頭像 發表于 10-31 10:34 ?958次閱讀
    “點沙成金”的科技奇跡:深入解讀芯片制造三大階段與<b class='flag-5'>五大</b>步驟

    五大電磁頻譜管理系統:原理、架構與應用全景解析

    五大電磁頻譜管理系統:原理、架構與應用全景解析
    的頭像 發表于 09-26 10:21 ?513次閱讀
    <b class='flag-5'>五大</b>電磁頻譜管理系統:原理、架構與應用全景解析

    選擇專業X-ray探傷設備廠家的五大關鍵標準與實用指南

    需要確保采購的設備具備穩定性能與可靠性。那么,選擇專業X-ray探傷設備廠家的關鍵標準是什么呢?本文將為您提供五大標準與實用指南,助您在采購過程中做出明智的選擇。 1. 廠家的資質與行業信譽 選擇一個具有良好行業聲譽和相應資質的廠家至關
    的頭像 發表于 09-19 14:03 ?512次閱讀

    能源數字化轉型核心!一張圖揭秘綠電直連“流合一”超級架構

    本文將化繁為簡,通過“源、網、荷、儲、碳”五大核心要素,為您全景解析其系統架構,揭秘如何實現“流合一”的智慧協同。
    的頭像 發表于 09-17 17:07 ?944次閱讀
    能源數字化轉型核心!一張圖<b class='flag-5'>揭秘</b>綠電直連“<b class='flag-5'>五</b>流合一”超級架構

    如何選擇適合的國產X-Ray設備?5大關鍵因素分析

    。結合市場趨勢和用戶反饋,本文將深入解析選擇國產X-Ray設備時需要關注的五大關鍵因素,幫助企業和采購人員精準把握選型要點,提升檢測效率和操作體驗。無論您是設備采購負責人,還是技術運行人員,都能找到實用的參考建議。您是否也在思考
    的頭像 發表于 09-08 09:58 ?737次閱讀

    晶體晶振在機器人五大核心模塊的關鍵作用

    你以為機器人那些流暢的動作和適宜的反應,只靠一顆強大的CPU就夠了嗎?NO,NO,NO! 再聰明的大腦也需要晶體晶振來統籌全局!晶體晶振就像機器人的「心跳」和「指揮棒」,決定了它每一個動作、每一條指令的精準觸達。今天,我們就來解析這顆「芯」在機器人五大核心模塊的關鍵作用!
    的頭像 發表于 09-03 09:36 ?898次閱讀
    晶體晶振在機器人<b class='flag-5'>五大</b>核心模塊的<b class='flag-5'>關鍵</b>作用

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

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

    A級標準如何達成?太陽光模擬器性能評估的五大關鍵指標

    推動技術革新的關鍵工具。本文以國際標準體系為框架,結合紫創測控Luminbox在精密光學測試領域的工程實踐,系統解析太陽光模擬器性能評估的五大核心維度,揭示高精度
    的頭像 發表于 08-18 18:08 ?722次閱讀
    A級標準如何達成?太陽光模擬器性能評估的<b class='flag-5'>五大關鍵</b>指標

    深度揭秘:PCB 抄板打樣的五大核心科技

    一站式PCBA加工廠家今天為大家講講PCB抄板打樣技術有哪些?PCB抄板打樣5大核心技術揭秘。在電子產品逆向開發領域,80%的PCB抄板項目失敗源于隱秘技術風險。下面小編為大家揭示行業五大核心痛點
    的頭像 發表于 08-01 09:20 ?847次閱讀

    判定太陽光模擬器性能的五大關鍵指標及其評估

    推動技術革新的關鍵工具。本文以國際標準體系為框架,結合Luminbox在精密光學測試領域的工程實踐,系統解析太陽光模擬器性能評估的五大核心維度,揭示高精度光照環境
    的頭像 發表于 07-24 11:29 ?614次閱讀
    判定太陽光模擬器性能的<b class='flag-5'>五大關鍵</b>指標及其評估

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

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

    華為汪濤提出解鎖5G-A潛能的五大關鍵方向

    在2025 MWC上海期間舉辦的全球移動寬帶菁英論壇上,華為常務董事汪濤發表了“共贏移動AI時代:解鎖5G-A潛能,釋放商業價值”主題演講。他表示,移動AI時代發展速度超乎想象,為移動產業帶來三大變化,倡議產業界共迎變化,加速激活5G-A五大潛能,攜手共贏移動AI時代。
    的頭像 發表于 06-23 11:23 ?948次閱讀

    工業化超聲波清洗設備的五大關鍵特性

    工業化超聲波清洗設備的五大關鍵特性工業化超聲波清洗設備在現代制造業中扮演著至關重要的角色,它們能夠以高效、精確的方式清洗各種零件和產品。本文將介紹工業化超聲波清洗設備的五大關鍵特性,幫助您更深
    的頭像 發表于 06-13 17:29 ?774次閱讀
    工業化超聲波清洗設備的<b class='flag-5'>五大關鍵</b>特性

    智慧醫院建設的三大關鍵領域

    演進,主要集中在以下古河云科技三大關鍵領域展開深度創新與實踐。 智能化診療服務體系的構建 診療服務的智能化改造是智慧醫院最直接的體現,其核心在于打破傳統醫療的時空限制,實現精準醫療和高效服務
    的頭像 發表于 04-25 11:55 ?583次閱讀

    不只依賴光刻機!芯片制造的五大工藝大起底!

    在科技日新月異的今天,芯片作為數字時代的“心臟”,其制造過程復雜而精密,涉及眾多關鍵環節。提到芯片制造,人們往往首先想到的是光刻機這一高端設備,但實際上,芯片的成功制造遠不止依賴光刻機這一單一工具。本文將深入探討芯片制造的五大關鍵工藝,揭示這些工藝如何協同工作,共同鑄就了
    的頭像 發表于 03-24 11:27 ?3919次閱讀
    不只依賴光刻機!芯片制造的<b class='flag-5'>五大</b>工藝大起底!