问题描述
有这样的一个业务:网站同一时间段有大量访问量,要保存访问者IP,访问时间等信息到数据库。请问,怎样把这些要保存的数据放在等待队列,然后一批一批这样保存,或到一定数量再保存到数据库。或还有没有其他更好的方法,不至于让数据库负荷太大,谢谢!我是用SSH框架的 问题补充:7454103 写道
解决方案
用java的queue队列作为容器保存ip信息,在把该程序用spring发布为quartz服务,一直监听,当queue队列到达一定数量的时候批量保存,然后清空队列,接续监听。
解决方案二:
建议先写到日志文件里,日志文件可按小时分割然后定时统计访问日志,导到数据库这是大型网站比较通用的方法
解决方案三:
你的访问量这么大,Java的Queue估计支持不了还是建议你用RabbitMQ,Erlang写的,Erlang最大的特点就是支持高并发.
解决方案四:
引用我也怀疑有没有这么大,但boss是这样说的!!! 淘宝每天也就 5000 W 左右 ! 你得估计下有没这么大的访问量! 如果确实这么大 还真强! 呵呵
解决方案五:
这么大,什么网站啊
解决方案六:
IBM MQ
解决方案七:
引用看了一下,数据量确实很大!!一天1千万左右 这么强!! 淘宝每天也就 5000 W 左右 !看来你网站确实比较狠!既然这样你可以考虑下 服务器负载均衡 或者 读写分离之类的!
解决方案八:
其实没必要那么复杂!队列 任务什么的可能还会把问题搞复杂!!引用网站同一时间段有大量访问量 这个量有多大呢? 一百万? 如果是这样 你可以那么干!我曾今做的一个网站 每天 10 万 PV 服务器没什么压力的!只需要服务器差不多久可以了!
解决方案九:
如果你自己写一个队列的话,可能比较麻烦,还会出很多bug,推荐使用RabbitMQ,一个开源的消息队列。http://www.rabbitmq.com/http://www.rabbitmq.com/documentation.html有Java的接口实现方式:http://www.rabbitmq.com/releases/rabbitmq-java-client/v1.8.1/rabbitmq-java-client-javadoc-1.8.1/你的数据就往队列里面送,有个后台程序就监控着队列,有数据的话就处理。没数据的话就等待。RabbitMQ性能不错的。