让总线流量仅限于价值高于处理成本的数据。价值和成本是调整消息流量的标准。要减少低价值高成本的流量。对低价值/低成本和高价值/高成本的流量进行采样,以减少成本。消息流量并非“免费的”,对系统是有成本需求的。不要所有东西都发布。对流量进行采样可以在成本和价值之间取得平衡。
对几乎任何东西来说,如果过量了,都会造成严重的负面影响。例如,如果健身时间过长,会降低身体的免疫力,使人容易受病毒侵害。同样,如果无论产品中发生了什么,都发布到一条或多条消息总线上,也会发生这种问题。解决方法是了解哪些消息具有价值,判断它们具有多大的价值,以及这些价值是否值得发布。
在解释过如何扩展消息总线后,为什么我们还要讨论在几乎能够无限扩展的系统上发布多少信息呢?答案在于扩展方案的成本和复杂度。我们发现,客户常常把几乎每个服务执行的每个动作的消息都发布出来。在许多情况下,发布的信息是应用已经在本地日日志文件(或Web日志)中存储过的。通常,这些客户声称这些数据有助于查找故障或发现容量瓶颈(即使它们本身会造成这样的瓶颈)甚至有一次,一个客户声称因为我们他们才把所有消息都发布到总线上的,因为他们采纳了我们的建议“把系统设计为可监控的”,他们认为这意味着要“捕捉系统的所有动作”。
首先,我们要解释的是,并非所有数据对业务的价值都相等。显然对于一个营利性的业务来说,用于完成产生利润的交易的必要数据才是最重要的,在大多数情况下,它们比用于帮助我们分析的数据重要得多那些帮助我们在将来的业务上做得更好的数据可能比帮助我们识别的数据重要(尽管后者也非常重要)。显然,大多数数据都有些“选择性的价值”,我们可能以后会发现它的用途,但这种价值比当前对业务有显的积极影响的数据的价值低。在某些情况下,只取一小部分数据,能够提供的价值和取所有数据的价值是相当的,这种情况即在大量交易的系统中对价值较低的数据进行统计学抽样。
在许多系统中,尤其是在跨多条消息总线的系统中,数据的成本是一致的。即使交易或数据元素的价值会根据交易类型甚至客户的价值而改变,处理交易的成本仍然是一致的。这就事与愿违了。我们的理想状况是系统中的任何元素的价值都远远超过该元素的成本,最坏的情况是价值等于成本。这种关系的简单图解,解释了一个团队应该如何处理数据。
即数据的价值大大超过了在总线上发送它的成本。在电子商务站点,这种交易的一个明显例子就是购物车交易。右下象限区域中的数据是要抛弃的。一种可能的情况是,某人在社交网络站点更改了他的头像(假设头像更改了,但并没有生成消息)。发布信息的频率也会对它在消息总线上的成本造成影响。随着对总线需求的增加,总线的成本也会增加,因为需要扩展总线来满足新的需求。利用采样可以降低交易成本,而且如如前所述,某些情况下,还能让我们保有100%的交易价值。抽样可以降低交易成本,沿着横轴从右到左会使数据价值超过数据成本,从而允许我们保留一部分数据。降低了交易成本,意味着我们可以减少消息总线的数量并降低它们的复杂度,因为要发送的消息总量减少了。
这里要传达的总体信息是,只是因为你实现了一条消息总线,并不意味着你必须将其用于所有情况。你可能会遇到强烈的要求,即发送的消息要比需要的消息多,你应该抵制这种要求。要永远记住,不是所有的数据价值都相等,尽管它们的成本可能相同。利用网站设计采样技术可以降低处理数据的成本,抛弃(或者不发布)价值较低的东西。
>>> 查看《避免让消息总线过度拥挤》更多相关资讯 <<<
本文地址:http://www.phpweb.com.cn/news/html/3519.html