免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 16374 | 回复: 37
打印 上一主题 下一主题

[C] 线上讨论:千万级广告投放核心的设计和实现——分享案例 探讨解决方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-27 13:42 |只看该作者 |倒序浏览
案例分享
之前就职于一家精准广告投放公司。是和各个门户网站合作投放广告,所以每天的访问量也很大。原先广告投放核心是采用Apache module方式,定期从mysql重载广告素材,投放条件等数据。
这个投放核心存在以下问题
1. 需要再apache module 写大量的业务逻辑 C代码(比如根据页面关键词、IP等条件进行广告投放).  使C代码更加的复杂。如果缺少完整的文档。别人很难接手维护
2. 投放核心 需要定期从MySQL重载数据。
3. 代码结构不清晰。维护不容易
4. 因为业务需要,经常需要修改修改业务逻辑。所以要反复编译、部署、测试。比较麻烦。

活动话题:
1,就以上案例,征集更优质解决方案或者改进方案,
2,针对大家提出的方案提出异议并讨论。

活动有奖:

闪迪CZ40 8GB U盘 3个

特别大奖:

我们对于提出更优质解决方案的网友奖励 CU社区独家定制十周年背包一个。
   

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2011-10-27 13:53 |只看该作者
php + 内存数据库/memcache;服务器集群。前面用代理或者其它方案做负载均衡,后面用mysql/pgsql/文件存储数据,静态数据分开存储。定时从内存数据库中将需要永久存储的数据取出、存盘、汇总。

写apache模块纯粹是没事吃饱了撑的。{:3_197:}

评分

参与人数 1可用积分 +6 收起 理由
无风之谷 + 6 积极参与 赞~

查看全部评分

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
3 [报告]
发表于 2011-10-27 14:29 |只看该作者
前端用squid做缓存服务,nginx做负载均衡,后端用apache+php+mysql来做服务,apache上加载memcache来减少数据库负载,这样性能能提高一些.
写模块的方式,需求变化的时候,重新编译肯定会是一个很大的负担啊

评分

参与人数 1可用积分 +6 收起 理由
无风之谷 + 6 赞一个~

查看全部评分

论坛徽章:
0
4 [报告]
发表于 2011-10-27 14:42 |只看该作者
1、写个php扩展,数据直接通过apc缓存。需要更改的时候,重启下fast-cgi就可以了
2、nginx扩展,调用lua,数据放入lua或者redis

论坛徽章:
0
5 [报告]
发表于 2011-10-27 14:48 |只看该作者
之前我们的广告投放系统是 用PHP + Memcached来做的。 业务逻辑没那么复杂。访问量 可能也没广告联盟的那么高

论坛徽章:
0
6 [报告]
发表于 2011-10-27 14:50 |只看该作者
最前端负载均衡设备-》多台APACHE+PHP+MEMCACHE读取数据,静态文件独立服务器承载,MYSQL数据缓存在MEMCACHE,写入数据时,先缓存到内存,再批量写入。

这样通过负载均衡转化到每台WEB上的流量就会是1/N,而且动态静态访问分开,把大量的静态请求分离到独立的NGINX服务器承载。把动态的数据请求转给APACHE+PHP读取MEMCACHE,数据的写入放入队列,定期向MYSQL批量写入汇总。

总的思路就是把大化小,小的上面再加缓存。把单次请求再转为批量执行。

论坛徽章:
0
7 [报告]
发表于 2011-10-27 14:51 |只看该作者
经过测试
nginx+php+redis优于apache+php+redis

而c+lua+redis优于nginx+php+redis

我现在正在用七夜的c做一个用户行为挖掘系统,目前的最大问题,就是稳定性,这块,还需要进一步的观察

论坛徽章:
0
8 [报告]
发表于 2011-10-27 15:00 |只看该作者
模块最不可靠吧?有需求改动就是个大麻烦。还是缓存吧,nginx+redis挺好,或者直接使用文件系统。

论坛徽章:
0
9 [报告]
发表于 2011-10-27 15:10 |只看该作者
对于低写高读,适合缓存形同,对于高写高读,缓存并不适合

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
10 [报告]
发表于 2011-10-27 16:33 |只看该作者
很吸引人的。参加了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP