談談我對服務化的理解

窗邊冷月光發表於2018-04-18

就目前來說,大部份開發者把一個Dubbo介面,或者一個RPC的呼叫當做服務化來理解,就我個人來說,這是非常不對的一個理解,Dubbo,RPC充其量只能算是一個介面呼叫,離服務化還差著十萬八千里。

那麼我理解的服務化是什麼呢?我理解的有如下幾點:

  1. 服務化無關遠端,本地,沒有Dubbo,RPC,也一樣要有服務化。

  2. 業務邊界清晰

  3. 高內聚,低耦合

  4. 服務可複用



就拿很多老程式碼來說,就跟記流水賬一樣,一個servlet或者一個action把所有需要處理的東西都處理完了,這樣同樣的業務邏輯假設在另外一個入口需要的時候,基本上就是把程式碼COPY過去,導致維護起來非常麻煩,當業務需求變動的時候常常需要改動非常多的點,工作量變的非常大,甚至遺漏一些點導致故障。


為了避免這些問題的產生,所以有了服務化的概念,簡單的來說,服務化就是一個SERVICE層,都知道SERVICE其實是分好多層的,有封裝dao層的service(為了一個資料的整體性,比如一對多的資料獲取),還有業務service,其中業務service又因為不同的業務粒度,拆分成更多的service,但是這些service都需要RPC化麼?答案當然是否定的,我們要對外暴露的SERVICE其實是最頂層的SERVICE,將我們底層的SERVICE細節給隱藏起來,並不是所有的service都需要對外暴露的,也不要將所有的細節都暴露給第三方。


那麼有了服務化後有那些好處?

  1. 業務入口統一,修改業務的時候就會非常簡單。

  2. 服務可擴充套件性強。

  3. 剃除冗餘程式碼。

相關文章