zoukankan      html  css  js  c++  java
  • 高并发数据采集的架构应用

    (Redis的应用)

    问题的出发点:

     

          最近公司为了发展需要,要扩大对用户的信息采集,每个用户的采集量估计约3W。如果用户量增加的话,将会大量照成采集量成3W倍的增长,但是又要满足日常业务需要,特别是报表数据必要在规定的时间内完成。

     

    技术障碍:

     

         1. 面对用户量的增长,记录数3W倍的增长,如何保证这些记录能够在比较快的时间内进入存储介质。

     

       2. 应对用户量的增长,如何在规定的时间内完成采集,增加硬件设备处理能力还是使用更多的服务器来处理请求。

     

         3. 服务器的增长,是否能够支持现有的扩展能力。

     

    架构实现:

     

    使用到的技术项:

     

         1. 面向服务开发思维

     

         2. 队列服务

     

         3. 多任务并发执行

     

         4. 分布式服务管理

     

         5. Redis的应用

     

         6. 数据分表(分区)的实现和应用

     

         7. Redis异步延迟同步到数据库

     

    架构图如下:

     

    image

     

    image

     

    具体实现:

     

         1. 队列服务可以采用HttpsQs

     

         2. 多任务并发执行,PHP版可采用ParallelCurl,可控制并发数量

     

         3. 可使用PHP Redis实现对Redis的操作

     

         4. 数据表分表或者分区,可自行动手写个,原理很简单,需要指导的可以发私密信

     

     

    总结:

     

          整个方案不是很复杂,在处理大数据方向这块,基本的原理都是一样,把不可控的因素要把握住,所以在多任务并发这块一定要控制到合理的数量,另外Redis缓存也支持分布式集群,增加Redis服务器并不会影响上层代码的改变,相对来说扩容能力还是相对不错。

     

  • 相关阅读:
    码农的自我修养
    工程化编程实战callback接口学习笔记
    eval代码执行漏洞
    CTF_show WEB1通过order排序读取数据库数据(特定场景)
    Python的ico_hash计算脚本
    FOFA网页爬取最新 批量版本
    利用Python爬取fofa网页端数据
    利用Python进行Payload分离免杀
    [Gym101653Q]Number Game
    傅里叶变换
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4179045.html
Copyright © 2011-2022 走看看