筆記
“360 度環(huán)評”!具體的操作方式為:列出我們需要關(guān)注的質(zhì)量屬性點(diǎn),然后分別從這些質(zhì)量屬性的維度去評估每個(gè)方案,再綜合挑選適合當(dāng)時(shí)情況的最優(yōu)方案。
常見的方案質(zhì)量屬性點(diǎn)有:性能、可用性、硬件成本、項(xiàng)目投入、復(fù)雜度、安全性、可擴(kuò)展性等。在評估這些質(zhì)量屬性時(shí),需要遵循架構(gòu)設(shè)計(jì)原則 1“合適原則”和原則 2“簡單原則”,避免貪大求全,基本上某個(gè)質(zhì)量屬性能夠滿足一定時(shí)期內(nèi)業(yè)務(wù)發(fā)展就可以了。
如果每次做方案都考慮這種小概率事件,我們的方案會出現(xiàn)過度設(shè)計(jì),導(dǎo)致投入浪費(fèi)。
如果某個(gè)質(zhì)量屬性評估和業(yè)務(wù)發(fā)展有關(guān)系(例如,性能、硬件成本等),需要評估未來業(yè)務(wù)發(fā)展的規(guī)模時(shí),一種簡單的方式是將當(dāng)前的業(yè)務(wù)規(guī)模乘以 2 ~4 即可,如果現(xiàn)在的基數(shù)較低,可以乘以 4;如果現(xiàn)在基數(shù)較高,可以乘以 2。
量變會引起質(zhì)變,具體哪些地方質(zhì)變,是很難提前很長時(shí)間能預(yù)判到的。
正確的做法是按優(yōu)先級選擇,即架構(gòu)師綜合當(dāng)前的業(yè)務(wù)發(fā)展情況、團(tuán)隊(duì)人員規(guī)模和技能、業(yè)務(wù)發(fā)展預(yù)測等因素,將質(zhì)量屬性按照優(yōu)先級排序,首先挑選滿足第一優(yōu)先級的,如果方案都滿足,那就再看第二優(yōu)先級。
理解與思考
- 難于選擇是因?yàn)閭溥x項(xiàng)的優(yōu)缺點(diǎn)不能量化。我們只能憑感覺去選擇。而感覺經(jīng)常是不可靠的。
- 從質(zhì)量屬性上去評估備選方案,避免考慮不周全,遺漏的情況。一個(gè)方案的好壞優(yōu)略,從這些方面也能或多或少的體現(xiàn)出來。
- 按優(yōu)先級來排序。先解決當(dāng)下最關(guān)注的質(zhì)量問題。
課后思考題
RocketMQ 和 Kafka 有什么區(qū)別,阿里為何選擇了自己開發(fā) RocketMQ?