哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

微服務(wù)五大關(guān)鍵好處揭秘

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

掃碼添加小助手

加入工程師交流群

前言

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

彈性

維基百科將彈性定義為系統(tǒng)處理變化的能力。我對彈性的理解是在問題被解決后系統(tǒng)從異常狀態(tài)(短暫的硬件故障以及意料之外的高網(wǎng)絡(luò)延遲等)或壓力期中優(yōu)雅恢復(fù),同時(shí)又不會(huì)影響系統(tǒng)性能的能力。

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

彈性是從錯(cuò)誤中優(yōu)雅恢復(fù)的能力。但它同樣也為系統(tǒng)帶來了新的復(fù)雜度:如果一個(gè)微服務(wù)出現(xiàn)了問題,我們能否防止系統(tǒng)的常規(guī)故障?理想情況下,我們應(yīng)該以這樣一種方式來構(gòu)建服務(wù):僅對服務(wù)響應(yīng)進(jìn)行降級(jí)而非讓系統(tǒng)出現(xiàn)常規(guī)故障,即使這樣做也并不容易。

可伸縮性

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

通常,這些問題并不涉及應(yīng)用的每一層次或所有子系統(tǒng)。往往只有個(gè)別子系統(tǒng)或服務(wù)會(huì)明顯慢于其余部分,一旦沒有處理好容量問題就會(huì)導(dǎo)致整個(gè)應(yīng)用發(fā)生故障。下圖描述了我們是如何對微服務(wù)進(jìn)行擴(kuò)展(擴(kuò)展成兩個(gè)郵件服務(wù))的,同時(shí)又不牽扯系統(tǒng)的其余部分:

微服務(wù)五大關(guān)鍵好處揭秘

讓我們來看一個(gè)關(guān)于車險(xiǎn)的場景,用于計(jì)算指定風(fēng)險(xiǎn)因素列表報(bào)價(jià)的服務(wù)便是該類問題的一個(gè)例子。通過擴(kuò)展整個(gè)應(yīng)用來滿足對某個(gè)特定部分的需求是否有意義?如果你腦海中的答案是“否”,那么你離擁抱微服務(wù)更近了一步。微服務(wù)可以讓你僅僅按需擴(kuò)展系統(tǒng)的一部分,從而只加大系統(tǒng)特定部分的處理能力。讓我們來看一個(gè)關(guān)于車險(xiǎn)的場景,用于計(jì)算指定風(fēng)險(xiǎn)因素列表報(bào)價(jià)的服務(wù)便是該類問題的一個(gè)例子。通過擴(kuò)展整個(gè)應(yīng)用來滿足對某個(gè)特定部分的需求是否有意義?如果你腦海中的答案是“否”,那么你離擁抱微服務(wù)更近了一步。微服務(wù)可以讓你僅僅按需擴(kuò)展系統(tǒng)的一部分,從而只加大系統(tǒng)特定部分的處理能力。

如果該保險(xiǎn)系統(tǒng)是一個(gè)面向微服務(wù)的系統(tǒng),那么我們只需要?jiǎng)?chuàng)建更多的微服務(wù)實(shí)例來負(fù)責(zé)計(jì)算就能解決報(bào)價(jià)計(jì)算需求過旺的問題。請記住,擴(kuò)展服務(wù)會(huì)給運(yùn)維團(tuán)隊(duì)增加開銷。

技術(shù)多樣性

軟件的世界每幾個(gè)月就會(huì)更新?lián)Q代。新語言進(jìn)入業(yè)界成為某類系統(tǒng)事實(shí)標(biāo)準(zhǔn)的節(jié)奏片刻未停。幾年前, Ruby onRails面世并在 2013年成為在各種新項(xiàng)目中使用昀多的 Web框架。Golang(由 Google創(chuàng)建的一門語言)因其結(jié)合了強(qiáng)大的性能與優(yōu)雅簡潔的語法而成為當(dāng)前的一種趨勢,任何只要擁有一門編程語言經(jīng)驗(yàn)的人都可以在幾天內(nèi)學(xué)會(huì)它。

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

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

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

Node.js利用了著名語言 JavaScript的優(yōu)勢,創(chuàng)建了一個(gè)新的服務(wù)端技術(shù)棧,從而改變了工程師們編寫新軟件的方式。

那么,將這些技術(shù)都結(jié)合起來會(huì)有什么問題嗎?平心而論,這是一個(gè)優(yōu)勢:我們可以選擇合適的工具來做相對應(yīng)的工作。

只要待集成的技術(shù)是標(biāo)準(zhǔn)化的,面向微服務(wù)的架構(gòu)便可以幫你實(shí)現(xiàn)這一點(diǎn)。正如我們在上文中已經(jīng)了解到的,一個(gè)微服務(wù)是非常小的,并且是一個(gè)自主運(yùn)維的軟件中的獨(dú)立部分。

下圖展示了微服務(wù)是如何隱藏?cái)?shù)據(jù)的存取邏輯的,兩個(gè)服務(wù)在存取數(shù)據(jù)方面共用同一個(gè)通信點(diǎn),從而能很好地互相解耦(一個(gè)服務(wù)實(shí)現(xiàn)發(fā)生變化時(shí)并不涉及任何其他服務(wù)):

微服務(wù)五大關(guān)鍵好處揭秘

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

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

可替換性

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

public interface GeoIpService {

/**

*檢查IP是否屬于指定ISO代碼所對應(yīng)的國家

**/

boolean isIn(String ip, String isoCode) throws

SOAPFaultException;

}

初看該接口可以發(fā)現(xiàn)它是自描述的。它將檢查特定 IP是否屬于特定的國家,一旦服務(wù)出現(xiàn)重大問題會(huì)拋出 SOAPFaultException。

如果我們構(gòu)建客戶端來消費(fèi)該接口,需要考慮到服務(wù)的上述邏輯,捕獲并處理 SoapFaultException。這等同于將服務(wù)內(nèi)部實(shí)現(xiàn)的細(xì)節(jié)暴露給了外部世界,從而很難再替換掉 GeoIpService接口。同樣的,事實(shí)上我們創(chuàng)建的某個(gè)服務(wù)如果關(guān)聯(lián)了應(yīng)用邏輯的某個(gè)部分則表明創(chuàng)建了一個(gè)限界上下文:即一個(gè)高內(nèi)聚的服務(wù)或服務(wù)集(通過集合所轄服務(wù)的協(xié)同工作可以達(dá)成一個(gè)目標(biāo))。

獨(dú)立性

不管我們怎么努力,人類的大腦都不擅長解決復(fù)雜問題。人類大腦昀有效的運(yùn)作模式是同一時(shí)間只做一件事情,所以我們可以將復(fù)雜問題拆解成更小的問題。面向微服務(wù)的架構(gòu)應(yīng)該也遵從這一方式:所有服務(wù)應(yīng)該都是獨(dú)立的,它們通過接口進(jìn)行交互。除了協(xié)定確認(rèn)接口這一環(huán)節(jié)之外,不同的工程師團(tuán)隊(duì)可以在無須交流的情況下完成對服務(wù)的開發(fā)。一家采用了微服務(wù)的公司可以根據(jù)業(yè)務(wù)的需求來調(diào)整工程師團(tuán)隊(duì)的規(guī)模,從而能敏捷地響應(yīng)業(yè)務(wù)的高峰期或靜默期。

為什么可替換性如此重要

在前面的一個(gè)小節(jié)中,我們討論了該如何確定微服務(wù)的合理規(guī)模。按照普遍的經(jīng)驗(yàn)而言,一個(gè)團(tuán)隊(duì)?wèi)?yīng)該能在一個(gè) sprint內(nèi)完成一個(gè)微服務(wù)的重寫和部署。這樣做的背后的根本原因就是技術(shù)債務(wù)。

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

易于部署

微服務(wù)應(yīng)當(dāng)易于部署。作為軟件開發(fā)者,我們知道在軟件的部署過程中很多事情都可能會(huì)出現(xiàn)問題。正如前面所提到的,微服務(wù)是非常易于部署的,原因如下:

?少量的業(yè)務(wù)邏輯(從經(jīng)驗(yàn)上來說是只需兩周即可完成從無到有的編寫)導(dǎo)致更易于部署。

?微服務(wù)是自治的工作單元,所以升級(jí)一個(gè)服務(wù)對于復(fù)雜系統(tǒng)來說是一個(gè)局部可控的問題。無須重新部署整個(gè)系統(tǒng)。

?微服務(wù)架構(gòu)中的基礎(chǔ)設(shè)施和配置應(yīng)該盡可能自動(dòng)化。在本書的后續(xù)部分中,我們將學(xué)習(xí)如何使用 Docker來部署微服務(wù),以及這樣做相比于傳統(tǒng)部署技術(shù)會(huì)有怎樣的優(yōu)勢。

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

    關(guān)注

    0

    文章

    150

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Springboot+SpringData+SpringCloud微服務(wù)架構(gòu)課程

    ? 后端進(jìn)階必學(xué):SpringCloud 微服務(wù)高可用落地實(shí)戰(zhàn) 在互聯(lián)網(wǎng)技術(shù)飛速迭代的今天,單體應(yīng)用架構(gòu)已逐漸難以承載億級(jí)流量的重?fù)?dān)。對于渴望突破瓶頸、邁向架構(gòu)師行列的后端開發(fā)者而言,掌握微服務(wù)架構(gòu)
    的頭像 發(fā)表于 03-19 16:08 ?259次閱讀

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

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

    五大電磁頻譜管理系統(tǒng):原理、架構(gòu)與應(yīng)用全景解析

    五大電磁頻譜管理系統(tǒng):原理、架構(gòu)與應(yīng)用全景解析
    的頭像 發(fā)表于 09-26 10:21 ?647次閱讀
    <b class='flag-5'>五大</b>電磁頻譜管理系統(tǒng):原理、架構(gòu)與應(yīng)用全景解析

    選擇專業(yè)X-ray探傷設(shè)備廠家的五大關(guān)鍵標(biāo)準(zhǔn)與實(shí)用指南

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

    能源數(shù)字化轉(zhuǎn)型核心!一張圖揭秘綠電直連“流合一”超級(jí)架構(gòu)

    本文將化繁為簡,通過“源、網(wǎng)、荷、儲(chǔ)、碳”五大核心要素,為您全景解析其系統(tǒng)架構(gòu),揭秘如何實(shí)現(xiàn)“流合一”的智慧協(xié)同。
    的頭像 發(fā)表于 09-17 17:07 ?1185次閱讀
    能源數(shù)字化轉(zhuǎn)型核心!一張圖<b class='flag-5'>揭秘</b>綠電直連“<b class='flag-5'>五</b>流合一”超級(jí)架構(gòu)

    如何選擇適合的國產(chǎn)X-Ray設(shè)備?5大關(guān)鍵因素分析

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

    晶體晶振在機(jī)器人五大核心模塊的關(guān)鍵作用

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

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

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

    A級(jí)標(biāo)準(zhǔn)如何達(dá)成?太陽光模擬器性能評估的五大關(guān)鍵指標(biāo)

    推動(dòng)技術(shù)革新的關(guān)鍵工具。本文以國際標(biāo)準(zhǔn)體系為框架,結(jié)合紫創(chuàng)測控Luminbox在精密光學(xué)測試領(lǐng)域的工程實(shí)踐,系統(tǒng)解析太陽光模擬器性能評估的五大核心維度,揭示高精度
    的頭像 發(fā)表于 08-18 18:08 ?832次閱讀
    A級(jí)標(biāo)準(zhǔn)如何達(dá)成?太陽光模擬器性能評估的<b class='flag-5'>五大關(guān)鍵</b>指標(biāo)

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

    一站式PCBA加工廠家今天為大家講講PCB抄板打樣技術(shù)有哪些?PCB抄板打樣5大核心技術(shù)揭秘。在電子產(chǎn)品逆向開發(fā)領(lǐng)域,80%的PCB抄板項(xiàng)目失敗源于隱秘技術(shù)風(fēng)險(xiǎn)。下面小編為大家揭示行業(yè)五大核心痛點(diǎn)
    的頭像 發(fā)表于 08-01 09:20 ?968次閱讀

    判定太陽光模擬器性能的五大關(guān)鍵指標(biāo)及其評估

    推動(dòng)技術(shù)革新的關(guān)鍵工具。本文以國際標(biāo)準(zhǔn)體系為框架,結(jié)合Luminbox在精密光學(xué)測試領(lǐng)域的工程實(shí)踐,系統(tǒng)解析太陽光模擬器性能評估的五大核心維度,揭示高精度光照環(huán)境
    的頭像 發(fā)表于 07-24 11:29 ?726次閱讀
    判定太陽光模擬器性能的<b class='flag-5'>五大關(guān)鍵</b>指標(biāo)及其評估

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

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

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

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

    工業(yè)化超聲波清洗設(shè)備的五大關(guān)鍵特性

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

    智慧醫(yī)院建設(shè)的三大關(guān)鍵領(lǐng)域

    演進(jìn),主要集中在以下古河云科技三大關(guān)鍵領(lǐng)域展開深度創(chuàng)新與實(shí)踐。 智能化診療服務(wù)體系的構(gòu)建 診療服務(wù)的智能化改造是智慧醫(yī)院最直接的體現(xiàn),其核心在于打破傳統(tǒng)醫(yī)療的時(shí)空限制,實(shí)現(xiàn)精準(zhǔn)醫(yī)療和高效服務(wù)
    的頭像 發(fā)表于 04-25 11:55 ?677次閱讀
    明溪县| 乌恰县| 西充县| 合江县| 安乡县| 左云县| 新营市| 荣昌县| 敦化市| 山西省| 噶尔县| 界首市| 浪卡子县| 苍溪县| 瑞昌市| 兴海县| 苏州市| 兴义市| 四平市| 理塘县| 玉田县| 永康市| 马尔康县| 大同县| 郓城县| 镇远县| 花莲市| 松阳县| 民权县| 清新县| 金沙县| 达尔| 乌海市| 平阴县| 成武县| 兴文县| 永寿县| 且末县| 阿勒泰市| 新乐市| 五寨县|