DSP一般使用什么后端开发语言?都有哪些优劣势?

请先 登录 后评论

1 个回答

钟珀辰 - 互联网广告产品

作为前码农,前来回答一下。

做架构选型,需要明确目的:要开发一个什么样的系统,需要实现什么功能?

那么,来看下一个常见的DSP由哪几部分组成:

1. 广告投放管理

广告主投放广告,需要创建广告计划,上传创意图片,设置定向和控制预算,需要查看报表等,所以需要建立一套广告投放管理系统来管理。这部分功能都是比较简单的增删改查,所以选择后端语言是基本上没什么难度:PHP、Java、NodeJS、GO等都是可以的,看团队熟悉哪种语言。

2. RTB竞价引擎

竞价引擎是整个DSP比较核心的部分,一个稍微大点的DSP平台,可能每日的竞价的流量至少在百亿以上,而且每个请求的响应时间不能超过100ms,这都系统的并发性能要求很高。

目前比较常用的语言有:C++/C 、GO、NodeJS。早期大部分都是用C++/C 来实现,C++/C虽然开发的系统性能较好,但是开发效率较低,对程序员的要求也高。GO语言不仅开发效率高,性能本身接近C++/C,非常适合开发并行程序。也有一些公司使用Nodejs来开发,Nodejs是基于事件驱动模型的、单线程的编程语言,性能也还不错,适合开发分布式应用。

3.DMP系统

DMP有两块主要功能:报表统计和用户数据挖掘。

DMP的日志系统收集用户的行为日志数据(曝光、点击、安装等),并使用spark来实现实时报表统计,但通常实时数据不稳定,有误差,还需要离线统计一遍,通常使用hive(也可以使用spark)。

用户数据挖掘的主要目的是训练竞价算法,挖掘用户的属性标签用户定向投放。训练算法可以使用Spark,也可以选择Python,Python有需求机器学习的包,还有C++/C,也有多种情况同时使用。

请先 登录 后评论