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