微服務開發(fā)攻略之淺析微服務架構
站在用戶的角度思考問題,與客戶深入溝通,找到清鎮(zhèn)網站設計與清鎮(zhèn)網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站制作、網站設計、企業(yè)官網、英文網站、手機端網站、網站推廣、空間域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋清鎮(zhèn)地區(qū)。最近這些年,微服務非?;?,那你有沒想過微服務的動機是什么?其實,最重要的動機就是業(yè)務變化太快了。特別是移動互聯網出現以后,各種各樣的業(yè)務:共享單車、支付寶、微信支付等等,業(yè)務經歷著飛速的變革與創(chuàng)新,所以就要求底層的應用技術能夠支撐得上業(yè)務的快速變化。
我們看一下應用架構的變遷,其實也是從另一個角度來印證上文說的“快”。
第一代是單體架構,當然它有很多,例如緊耦合、封閉架構等各種各樣的問題。第二代是SOA架構,可能大型企業(yè)級的應用里面會比較多,提供了很多種支持,實際上我們看到SOA架構的時候,它已經強調松耦合了。那么他強調這一點是為了什么?其中一點就是因為快(當然不是僅僅為了快)。到現在第三代微服務架構,它實際上是變得更加靈活了。在業(yè)務變化非??焖俚谋尘爸?,微服務架構是一個非常好的解決方案,微服務的核心——敏捷、靈活、精準彈性。微服務架構出現的大的意義是不斷地提高交付效率,縮短交付周期。
微服務最有名的人——Martin Fowler,在2015年提出了微服務的概念(實際上2009年Netflix就已經開始實踐微服務了,但是當時沒有微服務一詞)。2015年Martin Fowler明確的提出了微服務的概念并對它進行了一些比較清晰的定義,最主要的就是:小、獨、輕、松。就是說微服務要小,模塊邊界要更清晰,支持獨立部署獨立演進,每個微服務都應該可以獨立部署,獨立演進,獨立升級的。另外允許技術多樣性,就是在微服務構成的一個整體的應用系統里面,每一塊的業(yè)務要用你最適合的技術去實現,而不是都統一用一種語言去實現,這也是微服務非常重要的一個特點。
所有事情都有兩面性,那微服務也不是只有好處沒有壞處的,它也會帶來問題。其實很明顯,例如,從運維人員的角度來看,原來只需要運維一個應用;把它拆開后,就需要運維多個應用,復雜性和難度一定是增加的。從開發(fā)人員的角度來看,原來寫程序的時候,單體應用,方法之間的調用就可以解決很多業(yè)務的處理了;變成分布式以后,就要遠程調用,不能用簡單的進程內的調用了。用遠程調用它就會出現一些問題,比如會變慢、可靠性比進程內部的差等等。那開發(fā)人員就要去處理這些問題,要去為這些問題做準備。還有一點也是非常重要的,就是數據一致性的問題。原來在單體應用里面,可以用數據庫保持數據的一致性(或者說用數據庫的事務去保證數據的一致性);但是到分布式系統以后,突然發(fā)現這種方式不行了。因為在微服務架構里面提倡的是數據分開,就是說每一個微服務都會有自己獨立的數據庫。Martin Fowler也講了允許技術的多樣性,到數據這一層也要用最合適的數據庫技術去構建單獨的微服務。原來保證數據一致性都是關系型數據庫,直接用事物就好了。但是到了微服務就不一樣,可能有些微服務用的是關系型數據庫,但有些微服務用的是非關系型的數據庫。所以在這樣的前提下,去保證整個系統的數據一致性,也是帶來了很大的挑戰(zhàn)的。
以上大致介紹了什么是微服務架構,它有什么樣的特點,又有什么樣的優(yōu)勢和挑戰(zhàn)。想了解更多微服務相關內容嗎,華為云學院(https://edu.huaweicloud.com/)
已上線多門微服務相關課程,從基礎知識入門,到開發(fā)第一個微服務,到微服務的上線、治理,帶你一站式攻克微服務,敏捷開發(fā)微服務應用,快來報名學習吧。
另外有需要云服務器可以了解下創(chuàng)新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。