问题的出发点:数据库
最近公司为了发展须要,要扩大对用户的信息采集,每一个用户的采集量估计约3W。若是用户量增长的话,将会大量照成采集量成3W倍的增加,可是又要知足平常业务须要,特别是报表数据必要在规定的时间内完成。缓存
技术障碍:服务器
1. 面对用户量的增加,记录数3W倍的增加,如何保证这些记录可以在比较快的时间内进入存储介质。架构
2. 应对用户量的增加,如何在规定的时间内完成采集,增长硬件设备处理能力仍是使用更多的服务器来处理请求。并发
3. 服务器的增加,是否可以支持现有的扩展能力。异步
架构实现:分布式
使用到的技术项:大数据
1. 面向服务开发思惟url
2. 队列服务spa
3. 多任务并发执行
4. 分布式服务管理
5. Redis的应用
6. 数据分表(分区)的实现和应用
7. Redis异步延迟同步到数据库
架构图以下:
具体实现:
1. 队列服务能够采用HttpsQs
2. 多任务并发执行,PHP版可采用ParallelCurl,可控制并发数量
3. 可以使用PHP Redis实现对Redis的操做
4. 数据表分表或者分区,可自行动手写个,原理很简单,须要指导的能够发私密信
总结:
整个方案不是很复杂,在处理大数据方向这块,基本的原理都是同样,把不可控的因素要把握住,因此在多任务并发这块必定要控制到合理的数量,另外Redis缓存也支持分布式集群,增长Redis服务器并不会影响上层代码的改变,相对来讲扩容能力仍是相对不错。