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

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

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



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