面試基操:微服務(wù)拆分需要考慮什么因素?
面試官:微服務(wù)如何拆分?需要考慮什么因素? 候選人:一般按照功能拆分 面試官:還有嗎? 候選人:唔……
?
拆分服務(wù)會帶來什么問題?

一致性:要么我給你返回一個錯誤,要么我給你返回絕對一致的最新數(shù)據(jù),強(qiáng)調(diào)數(shù)據(jù)正確 可用性:我一定會給你返回數(shù)據(jù),不會給你返回錯誤,但不保證數(shù)據(jù)最新,強(qiáng)調(diào)的是服務(wù)不出錯 分區(qū)容錯性:我會一直運(yùn)行,不管我的內(nèi)部出現(xiàn)何種數(shù)據(jù)同步問題,強(qiáng)調(diào)的是不掛掉

?
如何合理拆分微服務(wù)?



總結(jié)一下
具體實(shí)踐建議:
我們要用一切手段提升溝通效率,比如slack,github,wiki。能2個人講清楚的事情,就不要拉更多人,每個人每個系統(tǒng)都有明確的分工,出了問題知道馬上找誰,避免踢皮球。 通過MVP的方式來設(shè)計系統(tǒng),通過不斷地迭代來驗證優(yōu)化,系統(tǒng)應(yīng)該是彈性設(shè)計的。 你想要什么樣的系統(tǒng)設(shè)計,就架構(gòu)什么樣的團(tuán)隊,能扁平化就扁平化。最好按業(yè)務(wù)來劃分團(tuán)隊,這樣能讓團(tuán)隊自然的自治內(nèi)聚,明確的業(yè)務(wù)邊界會減少和外部的溝通成本,每個小團(tuán)隊都對自己的模塊的整個生命周期負(fù)責(zé),沒有邊界不清,沒有無效的扯皮,inter-operate, not integrate。 做小而美的團(tuán)隊,人多會帶來溝通的成本,讓效率下降。亞馬遜的Bezos有個逗趣的比喻,如果2個披薩不夠一個團(tuán)隊吃的,那么這個團(tuán)隊就太大了。事實(shí)上一般一個互聯(lián)網(wǎng)公司小產(chǎn)品的團(tuán)隊差不多就是7,8人左右。
有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號
好文章,我在看??
評論
圖片
表情
