iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
Modern Web

初學者入門 - 有人叫我寫blog那就來做吧!系列 第 5

[day-04] - 淺談目前主流的架構 - 分散式系統

  • 分享至 

  • xImage
  •  

甚麼是分散式架構?

分散式架構(Distributed Architecture)是一種系統設計方法,在系統中同時有多個獨立的服務、節點、元件,分布在網路上共同運作。一個完善的分散式架構能提供充足的擴充性與容錯空間並且在緊急狀況下也有足夠的靈活性。

but..事實上..並不是每種分散式系統同時具備這些特性,所以接著就讓我們看下去!

垂直應用架構

垂直應用架構(Vertical Architecture) 是一種專門針對特定行業或業務流程設計的軟體架構。其目的可能是為了滿足一些特殊需求,就像前面有提到的MVC模型,當系統持續增大時所需的開發成本也會指數成長,為了減輕整體負擔,有時候我們會選擇犧牲程式 可重複利用性 ,將系統的某些功能移出去 獨立 開發為多個服務,例如:金融、零售服務就可能使用到 垂直應用架構 它是一種由上到下高度整合的流程/系統,其過程的實作可能不完全為分散式架構,在一定程度上由於 服務跟服務之間的關係很密切 ,因此在設計開發時有可能會做成 共享資料 的形式。也就是說, 即使今天子服務本身尚未滿載,也可能因為上游資料傳遞塞車、延遲,進而對系統本身產生不穩定因素

此外,有另一種相似的開發方式稱為垂直切片架構,礙於篇幅關係有興趣可以再參考看看

剛有說到,垂直應用架構有個很大的麻煩,當 服務跟服務之間的關係很密切 ,那資料存取就會是個大問題,有些人會採取將整個系統 資料庫共用 ,這或許將低了一部份的開發難度但實則上可能會造成安全性風險,任何一個子服務被入侵都有可能危及整個主系統。

那這樣,有沒有一個折衷的方案呢?不如來看看 分布式應用架構

分布式應用架構

分散式應用架構是個有趣的做法,它是由垂直應用架構發展而來,其核心概念都是將服務獨立開發,但 增加了個別服務與核心溝通的作法 ,簡單來說就是 將最核心的服務獨立出來,剩下所需共享資源的服務就另外使用RPC或是自訂的通訊方法進行溝通 ,這樣就可以達到不須共享資料庫的資料傳遞,缺點是其架構容易造成效能問題,且當系統變的龐大可能難以維護


上一篇
[day-03] - 淺談目前主流的架構 - 前後端分離架構
下一篇
[day-05] - 淺談目前主流的架構 - 雲端化架構 ( Part.1 )
系列文
初學者入門 - 有人叫我寫blog那就來做吧!18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言