聊聊微服務

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"​最近看到一些小夥伴在聊微服務相關的話題,每個人對於微服務都有自己的理解。甚至很多小夥伴覺得微服務就是架構界的“白富美”,人人都很嚮往擁有它,其實不盡然。任何事物脫離場景的表述都是蒼白的。"},{"type":"text","marks":[{"type":"strong"}],"text":"那麼微服務到底是什麼呢?我們在什麼時候需要它呢?"},{"type":"text","text":"在此我想拿出兩年前在團隊內部做過的一次分享,跟大家一起聊聊微服務。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"說起微服務,"},{"type":"text","marks":[{"type":"strong"}],"text":"我們不得不從它是如何誕生的說起,當我們理解了它誕生的原因後,自然就會知道微服務是爲何而生,生而爲何。"},{"type":"text","text":"話不多說,我們這就開始吧!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1.架構的演變"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/4d/4d10cfb4999dd5cc70ac34eb4d453527.png","alt":null,"title":"架構的演變","style":[{"key":"width","value":"100%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以互聯網應用爲例,絕大部分的應用都是從"},{"type":"text","marks":[{"type":"strong"}],"text":"單體應用架構"},{"type":"text","text":"開始,隨着業務的拓展及業務量的提升,逐步向"},{"type":"text","marks":[{"type":"strong"}],"text":"分佈式應用架構"},{"type":"text","text":"發展。而在早期的分佈式應用架構中,以"},{"type":"text","marks":[{"type":"strong"}],"text":"SOA架構"},{"type":"text","text":"爲主,隨着技術、理念的發展及更新,逐漸衍生出了"},{"type":"text","marks":[{"type":"strong"}],"text":"微服務架構"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"應用架構的發展日新月異,從來沒有停止過它的腳步。微服務架構同SOA架構一樣,同爲階段性的產物("},{"type":"text","marks":[{"type":"italic"}],"text":"近些年,"},{"type":"text","marks":[{"type":"strong"}],"text":"Serverless架構"},{"type":"text","marks":[{"type":"italic"}],"text":"也逐漸進入大家的視野,開啓了應用架構向“無服務器架構”模式的轉變,使開發人員能夠更加聚焦在業務本身的開發。"},{"type":"text","text":")。世界上唯一不變的就是變化本身 。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"2.單體應用架構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/64/643f62f7a72eea1130bc6b5ee4efb4a6.png","alt":null,"title":"單體應用架構","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"單體應用架構大都是以分層架構("},{"type":"text","marks":[{"type":"strong"}],"text":"layered-base"},{"type":"text","text":")爲基礎構建的。"},{"type":"text","marks":[{"type":"strong"}],"text":"所謂的單體應用架構,就是將應用所有功能打包成一個獨立的單元向外提供服務。"},{"type":"text","text":"單體應用架構有其自身的優越性,非常適合初創型團隊進行快速業務試錯。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"單體應用架構的優點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"技術棧單一"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"開發人員規模小"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"系統架構簡單"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"運維管理、部署,人員招聘及人員管理都相對容易實現。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"隨着業務的不斷拓展及業務量的提升"},{"type":"text","text":",單體應用架構的問題也逐漸顯現出來。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"單體應用架構的缺點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"程序耦合嚴重,代碼擴展性差,業務邏輯複雜使得需求響應變慢。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"業務容量存在瓶頸。各種業務代碼及數據層的耦合使得服務擴展變得複雜。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"系統可用性差。由於代碼臃腫,邏輯複雜,使測試難度增加,程序bug會給整個平臺帶來災難性的後果。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲了解決上述的問題,分佈式架構應運而生。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"3.分佈式應用架構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/b8/b8cb3f18a4da9d5492066762eee528f0.png","alt":null,"title":"分佈式應用架構","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"分佈式應用架構爲提升應用的擴展性、容量及可用性等問題提供瞭解決方案。"},{"type":"text","marks":[{"type":"strong"}],"text":"所謂的分佈式應用架構就是將應用系統拆分爲多個獨立的子系統,並由各個子系統協同處理,共同向外提供服務。"},{"type":"text","text":"對於分佈式應用架構我們按時間將其分爲了兩個階段,"},{"type":"text","marks":[{"type":"strong"}],"text":"before 2010"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"after 2010"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"▐ SOA before 2010"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SOA(Service-Oriented Architecture)又叫面向服務的架構。"},{"type":"text","marks":[{"type":"strong"}],"text":"它是一個組件模型,它將應用程序按不同功能單元(稱爲服務)進行拆分,並通過定義良好的接口和協議將服務聯繫起來。接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操作系統和編程語言。這使得構建在各類系統中的服務可以以一種統一和通用的方式進行交互"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"關於SOA架構我們可以追溯到2000年前後。那時的互聯網企業都在高速擴張,很多大型的企業都面臨着業務不斷拓展帶來的應用複雜性及容量不足等問題的挑戰,正是在這種環境下,SOA架構出現了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SOA通過對業務垂直切分,將平臺的業務拆分成若干個子服務。通過這樣的拆分,可以有效的解決單體應用架構所面臨的問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"SOA的優點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"業務及代碼邏輯的複雜度降低,提升需求響應能力"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"可用性提高。各子系統獨立的開發及部署,使測試複雜度降低,bug的影響範圍不會擴散至整個應用平臺。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"業務容量大。針對各個子系統的業務特點進行有針對性的優化及擴容,使優化及擴容更加簡便及輕量。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨着時間推移,"},{"type":"text","marks":[{"type":"strong"}],"text":"被拆分的服務越來越多"},{"type":"text","text":",隨之帶來問題的複雜度也呈指數上升。SOA架構的缺點逐步暴露出來。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"SOA的缺點"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"系統架構複雜。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"系統出錯概率增大。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"部署運維複雜度陡增。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"研發人員規模、質量上升"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"學習曲線變大"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"團隊協作、管理難度增加,重複功能的開發也會在團隊內部造成不菲浪費"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從量變到質變,SOA的這些問題給團隊帶來了新的挑戰。隨着技術、理念的發展,逐漸孕育出了微服務架構。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"▐ Microservices 2010 later"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"微服務 (Microservices) 是一種軟件架構風格,它是以專注於單一責任與小型功能區塊 (Small Building Blocks) 爲基礎,利用模組化的方式組合出複雜的大型應用程序,各功能區塊使用與語言無關 (Language-Independent/Language agnostic) 的 API 集相互通訊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"微服務本質上是SOA架構的升級版"},{"type":"text","text":",使用了一些新的理念及技術實現,以解決SOA架構暴露出的問題"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/0e/0ee3bea34949039085b38798fb6cce9b.png","alt":null,"title":"引用自:Microservices vs SOA: What's the Difference?[4]","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2010年後,隨着"},{"type":"text","marks":[{"type":"strong"}],"text":"領域驅動設計"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"持續集成持續部署(CI/CD)"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"虛擬化技術"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"雲計算"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"基礎設施自動化"},{"type":"text","text":"以及多年來分佈式架構實踐過程中產生出的一些解決方案("},{"type":"text","marks":[{"type":"strong"}],"text":"服務註冊發現"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"分佈式配置"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"服務監控"},{"type":"text","text":"、"},{"type":"text","marks":[{"type":"strong"}],"text":"服務跟蹤..."},{"type":"text","text":"),使得分佈式架構得到了長足的發展。問題、難點一個個被攻克,微服務架構正式在此基礎上誕生了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"微服務的優點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"進一步降低了系統的複雜度。由於自動化技術的完善及領域驅動設計理念的普及,系統得到更進一步的拆分及更細的顆粒度。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"組件化。更細的服務粒度,使服務擁有更高的可複用性,服務逐步組件化。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"自動化、高可用。高度的自動化測試、集成、部署及監控,使系統運維逐漸由人工操作向AI智能化轉型,使系統的彈性更優,可用性更高,故障率更低。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"混合技術棧。團隊中可以使用多種技術棧進行開發工作,針對不同業務的特點,採用更加有針對性的開發語言開發部署。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"系統彈性可伸縮。由於採用了虛擬化、特別是容器化的部署,自動化技術的加入,系統具有高度的可伸縮性,使平臺資源利用率更高。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"微服務的缺點:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"服務拆分的複雜性高。服務限界上下文[5]的錯誤,會導致不得不頻繁的更改服務間的協作。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"決策難度高。更細粒度的服務,意味着更高的靈活性及更多的組合,因此在設計開發中會遇到更多的決策,決策的失誤會造成不必要的成本浪費。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"學習成本進一步提高。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"4.總結"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過對應用架構發展脈絡的梳理,我想你對微服務是什麼應該有所瞭解了。微服務其實正是在SOA的基礎上,結合了最新的理念、成熟的解決方案逐步發展而來的一個大型應用平臺解決方案。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"單體應用架構解決的是應用從0到1的問題。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"SOA聚焦解決的是提升平臺容量,可用性,可維護性的問題。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"微服務聚焦解決的是服務編排與治理的問題。"}]}]},{"type":"listitem","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"serverless架構要解決的是讓研發人員的工作能夠聚焦在業務的開發。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"透過問題看本質,明白了他們核心解決的問題,我想你也應該知道該如何取捨和選擇了吧!所有技術架構核心是保障一個應用平臺能夠更穩定、高效的運轉,從而達成應用平臺最大化價值的目標。"},{"type":"text","marks":[{"type":"strong"}],"text":"爲了實現目標,應用架構也只是其中的一個維度,商業的目標、市場的定位、運營的策略、組織架構...,所有這些問題及環節都需要統籌規劃,協同發展纔可以實現最終的目標。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"微服務的話題僅憑藉一篇文章很難說完,本文爲了便於大家的理解,我們儘量保持在架構發展趨勢這一維度跟大家進行了講解,沒有對細節深入展開,後續文章會逐漸深入講解。最後,感謝大家的耐心閱讀,謝謝!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"引用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[1]. "},{"type":"link","attrs":{"href":"https://links.jianshu.com/go?to=https%3A%2F%2Fmartinfowler.com%2Farticles%2Fserverless.html","title":null},"content":[{"type":"text","text":"https://martinfowler.com/articles/serverless.html"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[2]. 《誰動了我的奶酪?》是美國作家斯賓塞·約翰遜"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[3]. 《分佈式系統原理與範型》"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[4]. "},{"type":"link","attrs":{"href":"https://links.jianshu.com/go?to=https%3A%2F%2Fdzone.com%2Farticles%2Fmicroservices-vs-soa-whats-the-difference","title":null},"content":[{"type":"text","text":"https://dzone.com/articles/microservices-vs-soa-whats-the-difference"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"[5]. 《領域驅動設計》"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/6e/6e5d30c98adefef67d3510d667b741af.png","alt":null,"title":"歡迎關注我的公衆號,煒娓道來程序人生","style":[{"key":"width","value":"25%"},{"key":"bordertype","value":"none"}],"href":"https://mp.weixin.qq.com/s/46RT2HtBkapiGD4B_RxaWg","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章