使用node.js或者ngxin+lua搭建OpenRTB需求方平台DSP系统
最近要搭建一套DSP系统,当然作用是什么大家都懂得。
需求方平台DSP是对并发有非常高的系统,和一般的系统不一样,它没有页面,返回和处理的数据都是JSON,处理的过程需要读取数据库或者缓存,并发非常高,建立目标是10000QPS
DSP的主要工作逻辑是接受SSP商发送的JSON请求,解析JSON后对SSP商返回JSON数据,数据中包含了出价信息,主要流程图:

根据需求,再加上自己能力有限,基本确定使用两种现成的方案来实现:
1. (nginx/lua) + redis + mysql
2. Node.js + redis + mysql
nginx/lun和node.js的处理并发能力都非常强,由于自己对JS比较熟悉,所以选用了node.js
下面贴出简单的实现代码:
1 var http= require('http'); 2 var util=require('util'); 3 var url=require('url'); 4 var queryString= require('querystring'); 5 var bidResponse = require('./bidresponse'); 6 7 http.createServer(function(req,res){ 8 var post=''; 9 //从Post中获取广告信息 10 req.on('data',function(data){ 11 post += data; 12 13 }); 14 req.on('end',function(){ 15 16 var isBid= false; 17 //根据Campaign判断是否出价 18 19 20 if(!isBid){ 21 res.writeHeader(204); 22 res.end(); 23 }else{ 24 res.writeHeader(200,{'Content-Type':'text/plain'}); 25 26 //根据Campaign设置bidResponse,并返回JSON 27 res.write(JSON.stringify(bidResponse)); 28 res.end(); 29 } 30 31 }); 32 33 34 }).listen(81);

浙公网安备 33010602011771号