加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_马鞍山站长网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

一篇文了解分布式队列编程:从模型、实战到优化

发布时间:2021-01-10 06:16:38 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 《一篇文了解分布式队列编程:从模型、实战到优化》要点: 本文介绍了一篇文了解分布式队列编程:从模型、实战到优化,希望对您有用。如果有疑问,可以联系我们。 本文由美团点评技术团队出品,一篇文助你掌握分布式队列编程的要义.从模型到实战再

需要声明的是,这里的解决方案并不是所处场景的最优方案.但是,任何一个稍微复杂的问题,都没有最优解决方案,更谈不上唯一的解决方案.实际上,工程师每天所追寻的只是在满足一定约束条件下的可行方案.当然不同的约束会导致不同的方案,约束的松弛度决定了工程师的可选方案的宽广度.

信息采集处理

信息采集处理应用广泛,例如:广告计费、用户行为收集等.作者碰到的具体项目是为广告系统设计一套高可用的采集计费系统.

典型的广告CPC、CPM计费原理是:收集用户在客户端或者网页上的点击和浏览行为,按照点击和浏览进行计费.计费业务有如下典型特征:

  • 采集者和处理者解耦,采集发生在客户端,而计费发生在服务端.
  • 计费与钱息息相关.
  • 重复计费意味着灾难.
  • 计费是动态实时行为,需要接受预算约束,如果消耗超过预算,则广告投放需要停止.
  • 用户的浏览和点击量非常大.

挑战

计费业务的典型特征给我们带来了如下挑战:

  • 高吞吐量--广告的浏览和点击量非常巨大,我们需要设计一个高吞吐量的采集架构.
  • 高可用性--计费信息的丢失意味着直接的金钱损失.任何处理服务器的崩溃不应该导致系统不可用.
  • 高一致性要求--计费是一个实时动态处理过程,但要受到预算的约束.收集到的浏览和点击行为如果不能快速处理,可能会导致预算花超,或者点击率预估不准确.所以采集到的信息应该在最短的时间内传输到计费中心进行计费.
  • 完整性约束--这包括反作弊规则,单个用户行为不能重复计费等.这要求计费是一个集中行为而非分布式行为.
  • 持久化要求--计费信息需要持久化,避免因为机器崩溃而导致收集到的数据产生丢失.

构思

采集的高可用性意味着我们需要多台服务器同时采集,为了避免单IDC故障,采集服务器需要部署在多IDC里面.

实现一个高可用、高吞吐量、高一致性的信息传递系统显然是一个挑战,为了控制项目开发成本,采用开源的消息中间件进行消息传输就成了必然选择.

完整性约束要求集中进行计费,所以计费系统发生在核心IDC.

计费服务并不关心采集点在哪里,采集服务也并不关心谁进行计费.

根据以上构思,我们认为采集计费符合典型的“生产者消费者模型”.

架构

(编辑:网站开发网_马鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!