• 租房项目之并发缺失数据问题


    前奏:本项目是一个基于django的租房信息获取项目。本次博客牵扯到两个版本,集中式分布以及分布式部署(两个版本的ui不同,集中式用的是老版ui,分布式使用的是新版ui);

    项目链接:https://gitee.com/junmoxuao/tenancy.git

    名词解释:集中式分布版本->将爬虫部分和处理用户请求的部分集中分布到同一个项目,虽然部署起来简单,但是存在一个问题(可能有隐藏问题未发现,但是这个问题是非常影响用户体验),就是如果多个用户同时去获取同一页的信息,则会出现信息缺失的问题。

                      分布式部署->将爬虫部分和处理用户请求的部分分布到多个服务器上,一来可以减少单点服务器的负载,二来可以在一定程度上解决并发问题。

    问题详述:

            先来看集集中式单用户获取的内容,如以下截图:

            最开始的时候无查询信息:

            获取某一页的信息:

            下载查看信息

            我们看到有30条信息,这也符合租房信息网站上的一页30条信息

            接下来模拟多用户并发:使用jmeter模拟多用户并发请求

            设置并发3个线程

            设置http请求

            运行后结果

            下载对应三次文件

            打开文件查看获取信息的条数

            

            我们可以看到,每一个用户获取到的信息都是不全的(均未达到30条,信息损失率分别为20%,26%,23%)

            接下来是分布式测试,过程与上述无异

            单用户测试

            多用户并发测试

            三个文件内容如下

            测试结果,无论多用户还是单用户,用户获取信息的损失率均为0%。

            测试完毕 

  • 相关阅读:
    机器学习-特征映射方法
    集成crawlergo和xray的src漏洞挖掘利器(hscan)
    UE5中双pass解决半透明材质乱序问题
    JVM基础 -> 什么是STW?
    Pycharm和Jupyter的对比
    docker、docker-compose部署oracle,plsql连接远程oracle
    Apriori介绍及代码批注
    12. 虚拟机与类加载机制
    数据结构与算法 - 图
    数据链路层概述
  • 原文地址:https://blog.csdn.net/m0_62155641/article/details/139673898