上班记录

本文详细介绍了使用Java、Selenium和PhantomJS实现移动物联网平台自动化登录的过程,包括动态公钥获取、验证码识别及Cookies保存,以及如何通过Cookies访问接口获取大量SIM卡用户信息,并对并发处理和驱动池进行了优化。

上班第一天

给的需求是:

1.用Java程序,通过账号密码登陆 移动物联网后台,实现模拟登陆----->获得cookies信息。

难点:1.1密码在登陆前通过RSA算法加密(加密的公钥是后台动态传过来不断改变)

~$1.1:通过浏览时network可以发现rsa.js的加密文件。在java中通过构造js运行引擎,运行js代码。rsa.js需要两个参数进行加密,moudle和message不断变化。解决方法为将整个首页信息下载下来,解析字符串获得moudle和message。

           1.2获得验证码

~$1.2:暂时决定引入第三方收费api验证码识别。

           1.3模拟浏览器发送AJAX的post请求附带json参数

使用postman熟悉模拟请求的参数和过程,为明天编码做好准备

 

上班第二天:推土机,把昨天的动态获得公钥和密码放弃。

新的方案:采用selenium+phantomjs。

通过selenium模拟用户打开网站的过程,同时采用phantomjs将界面隐藏。

即:自动化打开浏览器,输入设置好的账号密码,输入通过聚合api识别的验证码,点击登录,记录cookies。

2.拿着cookies去访问接口,获得已激活sim卡用户的信息。

通过httpclient模拟访问接口的过程。因为获得的数据量比较大需要先获得总条数,遍历页数(页数=总条数/每次取几条)

将获得的cookie通过StringBuff传出。

2.1通过json包装分页信息

构造page和row两个类通过JSONObject.fromObject构造分页的json

 

上班第三天:

在实现基本功能的前提下:这个登录的函数属于并发,所以又要对整个过程进行分析

首先:selenium的驱动webDriver属于在内存中开辟的一块空间,每有一个并发出现将申请一个webDriver。假设并发足够高,服务器内存将被消耗完,导致宕机。

解决方案:模仿线程池的方法,引入一个驱动池。通过双重检测的单例方法构造出pool实例,申请n个驱动,长时间维护这些驱动,解决驱动开启的时间过长以及内存消耗问题。

 其次:当并发请求发送过来时,可能会出现pool中的驱动全部都在使用中,此时拿不到driver,这个请求将无效。由于这个请求需要及时返回查询。大量尝试后得出方法:将并发请求的信息,转发到中转函数,中转函数维护一个queue。queue将并发请求的信息放入其中,1.当驱动空闲时,从queue中不断取出并发信息去执行查询2.查询失败时,将并发信息重新入队。3.当pool中没有空闲驱动时,入队。pool中,用的是线程安全的stack很傻逼,打算换成阻塞队列

 

第四天:

很傻逼,忘了改阻塞队列。

将代码重构了一下。。。

免费api机会用完了也没得测试了

提交上去了,还没执行单元测试,肯定bug一堆,今天没事干。到处摸鱼

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值