業(yè)務(wù)原則
單一責(zé)任原則:對(duì)于一個(gè)微服務(wù)而言,具有有限的業(yè)務(wù)范圍,可以幫助我們滿足服務(wù)開發(fā)和交付的敏捷性;
適當(dāng)?shù)倪吔纾宏P(guān)注微服務(wù)的功能范圍次泽,一個(gè)服務(wù)的大小應(yīng)該等于滿足某個(gè)特定業(yè)務(wù)能力所需要的大写┮恰;
業(yè)務(wù)分層: 從整體規(guī)劃上把業(yè)務(wù)分層意荤,形成單向依賴啊片,避免微服務(wù)之間的網(wǎng)狀依賴關(guān)系;
顆粒度遞增:設(shè)計(jì)初期先把業(yè)務(wù)劃分到盡可能細(xì)玖像,然后依據(jù)其它原則合并到適當(dāng)顆粒度紫谷;
非唯一依賴:至少被2個(gè)以上其它微服務(wù)依賴的功能模塊,才有必要獨(dú)立成一個(gè)微服務(wù)捐寥。
技術(shù)原則
部署獨(dú)立性:能獨(dú)立于其它微服務(wù)部署笤昨,一個(gè)微服務(wù)故障不影響其它微服務(wù);
動(dòng)態(tài)擴(kuò)展:每個(gè)微服務(wù)都可以動(dòng)態(tài)的進(jìn)行x軸和z軸的擴(kuò)展握恳,并適應(yīng)云環(huán)境下的自動(dòng)化部署咬腋; 參考這里 。
領(lǐng)域和應(yīng)用解耦:提供數(shù)據(jù)操作能力的領(lǐng)域服務(wù)和執(zhí)行業(yè)務(wù)邏輯的應(yīng)用服務(wù)解耦睡互;
避免產(chǎn)生頻繁的跨庫(kù)查詢;
避免產(chǎn)生頻繁的分布式事務(wù)陵像。
治理原則
在業(yè)務(wù)分層的基礎(chǔ)上就珠,根據(jù)業(yè)務(wù)細(xì)分規(guī)則,對(duì)微服務(wù)分組醒颖;
各個(gè)分組之間通過API網(wǎng)關(guān)集成妻怎;
通過API網(wǎng)關(guān)實(shí)現(xiàn)級(jí)輕量級(jí)消息路由,鑒權(quán)泞歉;
運(yùn)行時(shí)管理逼侦,如服務(wù)降級(jí),限流腰耙,監(jiān)控等可在API網(wǎng)關(guān)實(shí)現(xiàn)榛丢,讓微服務(wù)功能純粹;
避免通過數(shù)據(jù)庫(kù)集成挺庞;
避免部署多個(gè)版本來兼容晰赞。