對(duì)幾乎任何東西來(lái)說(shuō),如果過(guò)量了,都會(huì)造成嚴(yán)重的負(fù)面影響。例如,如果健身時(shí)間過(guò)長(zhǎng),會(huì)降低身體的免疫力,使人容易受病毒侵害。同樣,如果無(wú)論產(chǎn)品中發(fā)生了什么,都發(fā)布到一條或多條消息總線(xiàn)上,也會(huì)發(fā)生這種問(wèn)題。解決方法是了解哪些消息具有價(jià)值,判斷它們具有多大的價(jià)值,以及這些價(jià)值是否值得發(fā)布。
在解釋過(guò)如何擴(kuò)展消息總線(xiàn)后,為什么我們還要討論在幾乎能夠無(wú)限擴(kuò)展的系統(tǒng)上發(fā)布多少信息呢?答案在于擴(kuò)展方案的成本和復(fù)雜度。我們發(fā)現(xiàn),客戶(hù)常常把幾乎每個(gè)服務(wù)執(zhí)行的每個(gè)動(dòng)作的消息都發(fā)布出來(lái)。在許多情況下,發(fā)布的信息是應(yīng)用已經(jīng)在本地日日志文件(或Web日志)中存儲(chǔ)過(guò)的。通常,這些客戶(hù)聲稱(chēng)這些數(shù)據(jù)有助于查找故障或發(fā)現(xiàn)容量瓶頸(即使它們本身會(huì)造成這樣的瓶頸)甚至有一次,一個(gè)客戶(hù)聲稱(chēng)因?yàn)槲覀兯麄儾虐阉邢⒍及l(fā)布到總線(xiàn)上的,因?yàn)樗麄儾杉{了我們的建議“把系統(tǒng)設(shè)計(jì)為可監(jiān)控的”,他們認(rèn)為這意味著要“捕捉系統(tǒng)的所有動(dòng)作”。
首先,我們要解釋的是,并非所有數(shù)據(jù)對(duì)業(yè)務(wù)的價(jià)值都相等。顯然對(duì)于一個(gè)營(yíng)利性的業(yè)務(wù)來(lái)說(shuō),用于完成產(chǎn)生利潤(rùn)的交易的必要數(shù)據(jù)才是最重要的,在大多數(shù)情況下,它們比用于幫助我們分析的數(shù)據(jù)重要得多那些幫助我們?cè)趯?lái)的業(yè)務(wù)上做得更好的數(shù)據(jù)可能比幫助我們識(shí)別的數(shù)據(jù)重要(盡管后者也非常重要)。顯然,大多數(shù)數(shù)據(jù)都有些“選擇性的價(jià)值”,我們可能以后會(huì)發(fā)現(xiàn)它的用途,但這種價(jià)值比當(dāng)前對(duì)業(yè)務(wù)有顯的積極影響的數(shù)據(jù)的價(jià)值低。在某些情況下,只取一小部分?jǐn)?shù)據(jù),能夠提供的價(jià)值和取所有數(shù)據(jù)的價(jià)值是相當(dāng)?shù)模@種情況即在大量交易的系統(tǒng)中對(duì)價(jià)值較低的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)學(xué)抽樣。
在許多系統(tǒng)中,尤其是在跨多條消息總線(xiàn)的系統(tǒng)中,數(shù)據(jù)的成本是一致的。即使交易或數(shù)據(jù)元素的價(jià)值會(huì)根據(jù)交易類(lèi)型甚至客戶(hù)的價(jià)值而改變,處理交易的成本仍然是一致的。這就事與愿違了。我們的理想狀況是系統(tǒng)中的任何元素的價(jià)值都遠(yuǎn)遠(yuǎn)超過(guò)該元素的成本,最壞的情況是價(jià)值等于成本。這種關(guān)系的簡(jiǎn)單圖解,解釋了一個(gè)團(tuán)隊(duì)?wèi)?yīng)該如何處理數(shù)據(jù)。
即數(shù)據(jù)的價(jià)值大大超過(guò)了在總線(xiàn)上發(fā)送它的成本。在電子商務(wù)站點(diǎn),這種交易的一個(gè)明顯例子就是購(gòu)物車(chē)交易。右下象限區(qū)域中的數(shù)據(jù)是要拋棄的。一種可能的情況是,某人在社交網(wǎng)絡(luò)站點(diǎn)更改了他的頭像(假設(shè)頭像更改了,但并沒(méi)有生成消息)。發(fā)布信息的頻率也會(huì)對(duì)它在消息總線(xiàn)上的成本造成影響。隨著對(duì)總線(xiàn)需求的增加,總線(xiàn)的成本也會(huì)增加,因?yàn)樾枰獢U(kuò)展總線(xiàn)來(lái)滿(mǎn)足新的需求。利用采樣可以降低交易成本,而且如如前所述,某些情況下,還能讓我們保有100%的交易價(jià)值。抽樣可以降低交易成本,沿著橫軸從右到左會(huì)使數(shù)據(jù)價(jià)值超過(guò)數(shù)據(jù)成本,從而允許我們保留一部分?jǐn)?shù)據(jù)。降低了交易成本,意味著我們可以減少消息總線(xiàn)的數(shù)量并降低它們的復(fù)雜度,因?yàn)橐l(fā)送的消息總量減少了。
這里要傳達(dá)的總體信息是,只是因?yàn)槟銓?shí)現(xiàn)了一條消息總線(xiàn),并不意味著你必須將其用于所有情況。你可能會(huì)遇到強(qiáng)烈的要求,即發(fā)送的消息要比需要的消息多,你應(yīng)該抵制這種要求。要永遠(yuǎn)記住,不是所有的數(shù)據(jù)價(jià)值都相等,盡管它們的成本可能相同。利用網(wǎng)站設(shè)計(jì)采樣技術(shù)可以降低處理數(shù)據(jù)的成本,拋棄(或者不發(fā)布)價(jià)值較低的東西。
本文地址:http://murenxiang.com.cn//article/3519.html