Dubbo 服務治理簡介

前言

你們好,今天開始給你們分享 — Dubbo 專題之 Dubbo 服務治理簡介。在前面的章節中咱們介紹了 Dubbo 序列化,瞭解到了 Dubbo 中支持的序列化方式以及其實現原理。那麼從這個章節開始咱們討論服務治理相關話題,在這個章節中咱們會繼介紹 Dubbo 服務治理。那麼什麼是服務治理呢?爲何須要服務治理?Dubbo 中提供哪些服務治理方式呢?。那就讓咱們快速開始吧!git

1. 架構演進

首先在討論咱們的服務治理以前咱們先看看咱們的軟件架構設計的發展。在傳統的企業應用或桌面應用中,每每都是一個單體的應用架構設計以下圖所示:數據庫

單體架構

能夠看到咱們的單體架構很簡單一個 Java 進程和數據庫就能夠搞定。可是隨着業務的發展,咱們的業務邏輯愈來愈複雜好比:咱們一個電商系統主要包含用戶系統、商品系統、訂單系統、評價系統、支付系統、門店管理等等,同時咱們的項目團隊也可能隨着業務增加不斷擴大,那麼若是咱們還在之前的單體系統上進行開發可能會致使咱們的系統代碼變得沒法維護、一個系統上線可能致使全部服務不能使用等等問題。那麼這個時候咱們就使用多應用架構把功能在一個領域的放在一個系統中,同時應用之間不能直接的交互架構以下圖所示:編程

多應用架構

咱們能夠很直觀的感覺到當咱們的系統發展到必定量的時候咱們就須要對其進行拆分。固然上面的架構有一個明顯的問題:應用系統相互獨立後共同的業務或代碼沒法複用。那怎麼解決這個問題呢?接下來就是咱們討論的重點分佈式系統架構,在大型的電商系統中分佈式架構是咱們經常使用的解決大數據量、高併發的有效解決方案,同時咱們在實踐過程當中經常遇到有不少的服務或者組件是共用的、用戶需求變動快、快速迭代等等問題。所以,咱們但願分離變與不變,從而使組件或服務獲得更好的複用和更容易拓展和維護,上層的業務系統更加靈活多變的業務場景組合底層通用的公共服務能力來實現複雜多變的應用場景。如下是簡要的分佈式架構圖:微信

分佈式架構

從圖中咱們能夠看出應用層調用底層公共的抽象能力來組合成上層業務邏輯。架構

Tips:這裏的架構缺乏接入網關係統。

2. 服務治理簡介

從上面介紹的架構演進中,咱們能夠知道當咱們系統隨着業務增長鬚要面對:高併發、大數據量、高吞吐量等問題。那麼咱們就須要調整咱們的系統架構使咱們的系統服務化。服務治理主要做用是改變運行時服務的行爲和選址邏輯、達到限流、權重配置等目的。下面咱們經過服務化的特色、優點和所面臨的挑戰維度來進行闡述。併發

服務化的特色:負載均衡

  • 應用按業務拆分紅服務
  • 各個服務都可獨立部署
  • 服務可被多個應用共享
  • 服務之間能夠通訊

服務化所帶來的優點:async

  • 架構上系統更加清晰
  • 核心模塊穩定,以服務組件爲單位進行升級,避免了頻繁發佈帶來的風險
  • 開發管理方便
  • 單獨團隊維護、工做分明,職責清晰
  • 業務複用、代碼複用
  • 很是容易拓展

服務化面臨的挑戰:分佈式

  • 服務愈來愈多,配置管理複雜
  • 服務間依賴關係複雜
  • 服務之間的負載均衡
  • 服務的拓展
  • 服務監控
  • 服務降級
  • 服務鑑權
  • 服務上線與下線

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"微服務

style="display:block; text-align:center;"
 data-ad-layout="in-article"
 data-ad-format="fluid"
 data-ad-client="ca-pub-4279907681900931"
 data-ad-slot="6812672741"></ins>

<script>

(adsbygoogle = window.adsbygoogle || []).push({});

</script>

3. Dubbo 中服務治理

如下來自於官網的 Dubbo 服務治理架構圖:

服務治理

其中 Dubbo 支持的服務治理能力包括:服務發現註冊、服務監控、集羣容錯、負載均衡、黑白名單、標籤路由、條件路由、權重調節、服務降級等等。

4. 小結

在本小節中咱們主要學習了 Dubbo 中服務治理,分別從單體架構到分佈式架構的演進進行分析咱們爲何要不斷的改進咱們的架構設計。同時也知道了服務治理主要做用是改變運行時服務的行爲和選址邏輯、達到限流、權重配置等目的,其中 Dubbo 服務治理提供了:服務發現註冊、服務監控、集羣容錯、負載均衡、黑白名單、標籤路由、條件路由、權重調節等能力。

本節課程的重點以下:

  1. 理解 Dubbo 服務治理
  2. 瞭解架構演進背景
  3. 學習 Dubbo 中提供的服務治理方式

做者

我的從事金融行業,就任過易極付、思建科技、某網約車平臺等重慶一流技術團隊,目前就任於某銀行負責統一支付系統建設。自身對金融行業有強烈的愛好。同時也實踐大數據、數據存儲、自動化集成和部署、分佈式微服務、響應式編程、人工智能等領域。同時也熱衷於技術分享創立公衆號和博客站點對知識體系進行分享。關注公衆號: 青年IT男 獲取最新技術文章推送!

博客地址: http://youngitman.tech

微信公衆號:

相關文章
相關標籤/搜索