SOA(Service-Oriented Architecture,面向服務編程)

雖然是一枚計科出身,也寫了快兩年代碼的寶寶,然鵝對於不少專業術語仍是似懂非懂。html

依稀記得第一次接觸 SOA 這個概念是在剛進入目前的項目組,老大給了我一份培訓提供,包含了不一樣的階段須要瞭解及掌握的技術,當中就包含了 SOA,當時老大還簡單的介紹了一下,but 90後早早就被打上了「記性很差」的標籤,這個 tag 可不是空穴來風。沒有實際應用我早就忘記了。微服務

此次從新撿起來這個概念是由於咱們要開始新的項目了,須要參與搭建工程的過程(天知道我寫了一年多的底層代碼,還沒搭過工程呢)htm

查閱了大量的資料以後,個人結論是:SOA 就是將衆多的微服務集中起來,外部須要什麼服務,直接對接 SOA 便可。這個過程相似於你去麥當勞,多是渴了須要一杯咖啡,或者是餓了須要一份漢堡套餐,可是並不須要本身動手去作咖啡/漢堡套餐,只須要做爲消費者向收銀臺臺服務人員提出你的需求,等待你的需求被實現便可(固然,前提是你的需求是麥當勞能提供的)。這個收銀臺在 SOA 裏有更專業的術語:數據總線。外部服務只與數據總線進行交互,固然,交互的標準是統一規約好的。這裏還須要注意的是,從數據總線中獲取的服務都是須要先註冊的,註冊過程也有統一的標準。大約過程以下圖:blog

(糾結了下是放專業的流程圖仍是手畫版,默默選擇秀一下個人小兔子~~)開發

其中統一請求標準是:各服務的協議、地址、交互方式。get

如今的系統爲了追求功能全面,愈來愈龐大,爲了便於開發和管理,將功能模塊獨立化是一種流行趨勢,這也是近些年愈來愈強調「微服務」的緣由。目前市場上,用於管理微服務比較普遍的有阿里的dubbo、zookeeper,他們都用到了數據總線,而數據總線是 SOA 的核心,因此咱們能夠認爲用到了 dubbo、zk 的項目即爲用到了 SOA.it

擴展閱讀

相關文章
相關標籤/搜索