微服務簡介 構建單體應用

2022-06-29 12:39:13 字數 1097 閱讀 1732

網際網路技術發展迅速的今天,微服務倍受關注:文章、部落格、社交**討論和會議演講都在談論。與此同時,也有持懷疑態度的軟體社群人員認為微服務沒什麼新鮮可言。反對者聲稱它的思想只是面向服務架構的重塑。然而,無論是炒作還是懷疑,不可否認,微服務架構模式具有非常明顯的優勢 —- 特別是在實施敏捷開發和複雜的企業應用迭代開發方面。

我們先不問微服務是什麼?微服務該如何實現?讓我們從我們原本最熟悉的建立乙個應用和乙個普通的專案開始說起。

打車系統

我們假設要開始開發乙個打車應用,目標是與uber和didi競爭。經過討論和技術選型,我們開始手動開發生成乙個新專案,該新應用有乙個模組化的六邊形架構,如下圖所示:

![乙個打車應用]

(該應用的核心是由模組實現的業務邏輯。它定義了服務、領域物件和事件。圍繞核心的是與外部世界介面對接的介面卡。介面卡示例包括資料庫訪問元件、生產和消費訊息的訊息元件和暴露了 api 或實現了乙個 ui 的 web 元件。

網際網路公司架構

再比如,我們拿乙個常見的網際網路公司的靜態邏輯架構來舉例,我們通過如下的架構圖將系統切分成五層,如下圖所示:

![單體應用架構]

(前置服務層:各種重業務的聚合入口,對具體引用層做大量工作,實現業務呼叫鏈條的封裝,達成業務邏輯的強實現。

業務服務層:包含各種基礎的業務服務單元,比如借款系統、還款系統、徵信系統、活動系統、爬蟲系統、引流系統、檔案系統等。

基礎服務層:不包含狀態的基礎業務服務,包括但不限於簡訊閘道器、檔案閘道器、服務監控等。

資料層:包括各種形態的資料儲存層,但不限於各種資料庫、快取、訊息佇列等。

如上我們從傳統的構建專案應用和專案架構拆解的角度來給大家解釋了什麼是單體應用,單體的特點以及傳統的應用的架構設計。類似的單體應用在我們以往的網際網路發展和企業應用中使用的非常普遍,現在也仍然很多企業都是類似的單體應用。

但是,隨著需求的增長,業務的變化,單體應用在慢慢發展和迭代後,也會遇到一些問題,單體應用的瓶頸會逐步顯現。

【注:】以上文件,部分內容摘抄自《docker微服務架構實踐》,作者蔣彪

GO語言 微服務簡介 構建單體應用

網際網路技術發展迅速的今天,微服務倍受關注 文章 部落格 社交 討論和會議演講都在談論。與此同時,也有持懷疑態度的軟體社群人員認為微服務沒什麼新鮮可言。反對者聲稱它的思想只是面向服務架構的重塑。然而,無論是炒作還是懷疑,不可否認,微服務架構模式具有非常明顯的優勢 特別是在實施敏捷開發和複雜的企業應用...

微服務還是單體,應用架構怎麼選?

近幾年,由於微服務生態建設的完善,微服務架構漸成趨勢,逐漸流行。業內人士也都在爭先恐後想一睹微服務芳容,甚至想王老虎搶親。但同時存在沒有認真考慮微服務架構是否適合自己的應用場景以及組織文化的問題。本人在前幾篇博文已經對微服務生態有了闡述。所謂生態,實際上講的是天時地利人和,講的是各方和諧。微服務生態...

微服務 微服務簡介

什麼是微服務 顧名思義,就是粒度較小的服務,不再侷限於系統與系統之間的藉口呼叫,也不侷限於某種具體的服務形式。系統中凡是可被復用的功能模組都可以被 服務化 轉變為 服務 這些服務可以對外暴露,也可能僅限於再系統內部使用。由於服務數量更多,粒度更小,因此管控難度會更大,對效能的要求也更高。微服務的好處...