使用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);

 

posted @ 2016-11-21 20:16  最廉价的代码  阅读(611)  评论(0)    收藏  举报