不少中小規模的技術團隊對微服務的概念都不甚瞭解,對該不該引入微服務也不置可否。還有一些技術團隊,沒有考慮實際業務場景,只是爲了追求技術熱點,盲目引入微服務,但又缺乏相應的技術掌控能力,最後影響了業務的穩定性。千萬不要爲了微服務和使用微服務,因爲拆分微服務帶來很多複雜性,所以在拆分微服務之前,想明白以下問題該如何解決。
1)服務如何定義 (swagger)
2)服務如何發佈定義 (註冊中心)
3)服務如何監控 (dashboard)
4)故障如何定位 (鏈路追蹤)
5)服務如何治理 (熔斷)
並不是說功能拆分的越細越好,過度的拆分反而會讓服務數量膨脹變得難以管理,因此找到符合自己業務現狀和團隊人員技術水平的拆分粒度纔是可取的。我建議的標準是按照每個開發人員負責不超過 3 個大的服務爲標準,畢竟每個人的精力是有限的,所以在拆分微服務時,可以按照開發人員的總人數來決定。