簡要剖析:可擴充套件的微服務架構
應用程式狀態管理和資料驅動的決策
隨著應用程式和系統的複雜性不斷增加,處理這些問題的團隊的規模也不斷擴大。
在這種情況下,將系統作為整體系統會阻止開發團隊快速前進。
這就需要一種方法,使得獨立的功能團隊能將對其他團隊的依賴降到最小,並完整地提供所需的功能。
人們從一開始就試圖實現這個目標:從物件導向的程式設計,到面向服務的體系結構,到企業服務匯流排,最後到現在的微服務。
真實世界的例子問題
微服務的前提是與功能相關的所有內容都應以自給自足的方式存在 。
想象一下單片應用程式電子商務應用程式(儘管是超簡化範圍),它應該具有以下模組:
這些功能中的每一個都可能具有不同的利用率級別,並且將整個應用程式擴充套件到最大級別將消耗與利用率無關的資源。
一個人每次會話登入一次,可能會進行多次搜尋,但不經常更新他們的購物車,然後最終退出。又或者,使用者會在結賬後退出。
在這種情況下,搜尋功能和庫存檢查功能將比其他功能使用得多。
可以將應用程式分解為自給自足的服務,即微服務,然後根據功能上的負載來縮放適當的服務。
但是,完全自給自足意味著每個服務都有自己的端到端完整技術堆疊,包括資料庫。
如果資料在多個服務之間是通用的,則資料庫層將從微服務中解脫出來,有利於建立公共共享資料層。
這允許Saga模式的一致實現,使得參與的服務可以互發訊號並在相同的資料庫上操作。
這下問題該解決了吧?
快了,但還沒解決。
以下是對高效能的進一步要求:
電信:
-
vEPC或5G核心
-
IMS
-
OSS / BSS
-
呼叫欺詐預防
金融服務:
-
信用卡欺詐預防
-
投資組合風險管理
-
實時滑點計算
電子商務
-
實時庫存管理
-
實時訂單管理
-
搜尋與庫存水平一致
在這些用例中,資料處理通常具有不到5毫秒的延遲預算。
這也是分離資料和業務邏輯的流行概念開始需要對兩種業務邏輯進行一些改進的地方 :
1. 應用程式狀態控制業務邏輯
應用程式邏輯保留在應用程式中,即微服務和
2. 資料驅動的決策制定業務邏輯
資料驅動的業務邏輯保持接近資料,即在資料庫中。
這種分離允許兩個層根據各層的效能需求獨立擴充套件,同時不會產生不一致的/離散的資料集 或 為保證各層的彈性而基礎設施足跡人為膨脹地拼接在一起的多層結構。
VoltDB的能用之處在哪裡?
VoltDB是一個分散式記憶體資料庫,旨在為快速移動的流資料提供實時智慧決策。
藉助儲存過程框架和記憶體資料儲存引擎,VoltDB以可擴充套件的方式、最低延遲驅動大多數複雜的業務邏輯,即使在虛擬化環境(如VM和容器)中也是如此。
所有這些都不會影響ACID對企業級資料庫的預期保證。
如果您正處於將應用程式遷移到微服務架構的過程中,請看看我們如何透過跨功能一致性來幫助滿足您的資料處理需求吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69903219/viewspace-2564276/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微服務架構:自動擴充套件簡介微服務架構套件
- 微服務架構擴充套件FreeStyle微服務架構套件
- Django與微服務架構:構建可擴充套件的Web應用Django微服務架構套件Web
- 微服務架構中資料庫擴充套件和最佳化微服務架構資料庫套件
- 谷歌的三大可擴充套件核心架構谷歌套件架構
- 微服務架構的特徵簡要介紹微服務架構特徵
- 【軟體架構篇】常見可擴充套件模式架構套件模式
- 讀構建可擴充套件分散式系統:方法與實踐08微服務套件分散式微服務
- Apache Cassandra——可擴充套件微服務應用程式的持久資料儲存Apache套件微服務
- 可擴充套件性套件
- 如何從微服務角度建立可擴充套件的電子商務資料模型? - fabric微服務套件模型
- Bumblebee微服務閘道器的部署和擴充套件微服務套件
- Tokenformer:基於引數標記化的高效可擴充套件Transformer架構ORM套件架構
- 構建高可用性、高效能和可擴充套件的Zabbix Server架構套件Server架構
- 使用 Python 構建可擴充套件的社交媒體情感分析服務Python套件
- 使用 Postgres 的全文搜尋構建可擴充套件的事件驅動搜尋架構套件事件架構
- Scikit-learn可擴充套件學習簡介套件
- 寫介面的藝術: 精簡,可擴充套件套件
- Edge要相容 Chrome 擴充套件Chrome套件
- mobx-簡單可擴充套件的狀態管理庫套件
- 讀構建可擴充套件分散式系統:方法與實踐15可擴充套件系統的基本要素套件分散式
- 如何構建可控,可靠,可擴充套件的 PWA 應用套件
- 編寫可擴充套件程式套件
- 讀構建可擴充套件分散式系統:方法與實踐09可擴充套件資料庫基礎套件分散式資料庫
- 以對話的方式擴充套件架構的實踐 - Andrew套件架構
- 如何利用容器與中介軟體實現微服務架構下的高可用性和彈性擴充套件微服務架構套件
- 我對微服務架構的簡單理解微服務架構
- weex componet 簡單擴充套件套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 構建自己的簡單微服務架構(開源)微服務架構
- 實用的可選項(Optional)擴充套件套件
- dubbo是如何實現可擴充套件的?套件
- 開源 [輪子] Laravel 專案架構擴充套件包Laravel架構套件
- Lyft如何通過DevOps提升擴充套件微服務的生產力? - Garrettdev套件微服務
- Lyft如何透過DevOps提升擴充套件微服務的生產力? - Garrettdev套件微服務
- 聊聊如何讓你的業務程式碼具有可擴充套件性套件
- 擴充套件 GRTN:雲原生趨勢下的 RTC 架構演進套件架構
- (PHP7核心剖析-11) 模組擴充套件PHP套件