nginx+redis队列做统计系统
2013-05-08 13:31
225 查看
location /echo {
set $access '$arg_uid-$arg_pf-$arg_tm-$remote_addr-$http_x_forwarded_for-"$http_user_agent"-$http_referer-$request';
echo $access;
}
location /stat {
set $access '$arg_uid-$arg_pf-$arg_tm-$remote_addr-$http_x_forwarded_for-"$http_user_agent"-$http_referer-$request';
redis2_query lpush stat $access;
redis2_pass 127.0.0.1:6379;
}
再使用redis的C API和MYSQL的C API建立链接。多线程LPOP转移redis队列中数据到MYSQL。进行异步运算。一个统计入库就OK了。
这个里面有几个问题
1:不能把redis队列压爆了,需要多线程程序快速转移到MYSQL,最好是长链多线程接执行。
2:C并非唯一转移方案。C++/JAVA都可以。只要是多线程高效的就OK。需要判断数据是否合乎规则。
3:我原来测试的时候没有找到在nginx配置文件中的取得系统时间,这个可以放在多线程程序中。或者通过http GET方式传递过来。
如果谁找到了可以留言给我。谢谢先。($time_local编译时会出错。nginx: [emerg] unknown "time_local" variable)
4:统计最难的是异步运算机制,数据入库非常简单。具体方案就不再公开了。
5:方案不唯一,nginx_lua可以替代HttpRedis2Module半把判断数据是否合乎规则放进去。不过不建议这样做。
我没有好的理由说明,只是不方便维护。数据是否合乎规则是在不停的变化着。放在nginx配置文件维护不方便。队列组合也不唯一。
可以使用httpsqs/nginx/其他。队列数据库不唯一,ttserver/redis/其他都可以。
综合考虑nginx+redisHttpRedis2Module/nginx+tt server HttpmemcModule/httpsqs+tt server/sqsdb
各方案的高效性能和稳定性还是建议使用nginx+redisHttpRedis2Module。
有许多好方案,但合适的才是最好的。比如我善长用PHP但PHP来做这些并不太适合。HttpRedis2Module和nginx lua比PHP更高效。
set $access '$arg_uid-$arg_pf-$arg_tm-$remote_addr-$http_x_forwarded_for-"$http_user_agent"-$http_referer-$request';
echo $access;
}
location /stat {
set $access '$arg_uid-$arg_pf-$arg_tm-$remote_addr-$http_x_forwarded_for-"$http_user_agent"-$http_referer-$request';
redis2_query lpush stat $access;
redis2_pass 127.0.0.1:6379;
}
再使用redis的C API和MYSQL的C API建立链接。多线程LPOP转移redis队列中数据到MYSQL。进行异步运算。一个统计入库就OK了。
这个里面有几个问题
1:不能把redis队列压爆了,需要多线程程序快速转移到MYSQL,最好是长链多线程接执行。
2:C并非唯一转移方案。C++/JAVA都可以。只要是多线程高效的就OK。需要判断数据是否合乎规则。
3:我原来测试的时候没有找到在nginx配置文件中的取得系统时间,这个可以放在多线程程序中。或者通过http GET方式传递过来。
如果谁找到了可以留言给我。谢谢先。($time_local编译时会出错。nginx: [emerg] unknown "time_local" variable)
4:统计最难的是异步运算机制,数据入库非常简单。具体方案就不再公开了。
5:方案不唯一,nginx_lua可以替代HttpRedis2Module半把判断数据是否合乎规则放进去。不过不建议这样做。
我没有好的理由说明,只是不方便维护。数据是否合乎规则是在不停的变化着。放在nginx配置文件维护不方便。队列组合也不唯一。
可以使用httpsqs/nginx/其他。队列数据库不唯一,ttserver/redis/其他都可以。
综合考虑nginx+redisHttpRedis2Module/nginx+tt server HttpmemcModule/httpsqs+tt server/sqsdb
各方案的高效性能和稳定性还是建议使用nginx+redisHttpRedis2Module。
有许多好方案,但合适的才是最好的。比如我善长用PHP但PHP来做这些并不太适合。HttpRedis2Module和nginx lua比PHP更高效。
相关文章推荐
- srcache_nginx+redis构建缓存系统
- Logstash+Redis+Elasticsearch+Kibana+Nginx搭建日志分析系统
- Nginx配置srcache_nginx模块搭配Redis建立缓存系统
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (linux系统)
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
- Centos 6.5 安装nginx日志分析系统 elasticsearch + logstash + redis + kibana
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
- centos7 系统软件开机自启动配置 tomcat Rabbitmq Redis kafka zookeeper nginx
- srcache_nginx+redis构建缓存系统
- Logstash+Redis+Elasticsearch+Kibana+Nginx搭建日志分析系统
- 新版本logstash+elasticsearch+redis+nginx 日志收集系统搭建
- 基于Swoole和Redis实现的并发队列处理系统
- Logstash+Redis+Elasticsearch+Kibana 快速搭建Nginx日志查询系统
- windows系统下nginx+tomcat+redis做负载均衡和session粘滞附整套解决方案
- 基于Nginx+PHP+Redis的短URL系统的实现
- nginx+redis 实现 jsp页面缓存,提升系统吞吐率
- Nginx配置srcache_nginx模块搭配Redis建立缓存系统
- nginx +lua +redis 构建自动缓存系统
- nginx1.02+php+piwik+centos5.4构建网站统计系统
- J2EE通用后台管理系统 springmvc+mybatis+nginx+shiro+redis架构的session共享