摘要:
迁移背景 cassandra集群隔段时间出现rt飙高的问题,带来的影响就是请求cassandra短时间内出现大量超时,这个问题发生已经达到了平均两周一次的频率,已经影响到正常业务了。而出现这些问题的原因主要有以下3点: 1. 当初设计表的时候partition key设计的不是很合理,当数据量上去( 阅读全文
摘要:
背景 应该是在去年的时候,刷知乎看到一个问题,大概是说怎么刷网易云音乐个人累计听歌数,然后有一个高赞回答,贴了一段js代码,直接在浏览器console执行就可以了。当时试了下,直接一下子刷了有好几万。悲剧的是,第二天又回到原来的样子了,很明显这种方式被网易云音乐发现封掉了。而且后续网易云还针对累计听 阅读全文
摘要:
搭建背景 有时候我们需要把基于selenium的爬虫放到服务器上跑的时候,就需要这样一套运行环境,其中VNC是虚拟的显示模式,用于排查定位线上问题以及实时运行情况。 搭建流程 1. 安装虚拟输出设备: 2. 下载google chrome stable deb包,由于网上大部分链接没法下载,我这里下 阅读全文
摘要:
问题发现场景 某天突然收到线上应用的gc时间过长的告警,刚开始只有一台机器偶尔报一下,后续其他机器也纷纷告警,具体告警的阈值是应用10分钟内ygc的总时长达到了6.6s。 初步排除过程 1. 按照gc问题常规排查流程,还是先保留现场,jmap dump:format=b,file=temp.dump 阅读全文
摘要:
问题描述 应用收到频繁Full GC告警 问题排查 登录到对应机器上去,查看GC日志,发现YGC一分钟已经达到了15次,比Full GC还要频繁一些,其中Full GC平均10分钟超过了4次,如下图 使用jstat gcutil 5280 1000查看实时GC情况,年老代采用的是CMS收集器,发现触 阅读全文
摘要:
基于HttpClient 4.5.2 1. 执行GET请求 2. 执行POST请求 1. 提交form表单参数 2. 提交payload参数 3. post上传文件 4. post提交multipart/form data类型参数 3. 设置User Agent 4. 设置重试处理器 当请求超时, 阅读全文
摘要:
摘要 本文从源码层面简单讲解SpringMVC的参数绑定原理 SpringMVC参数绑定相关组件的初始化过程 在理解初始化之前,先来认识一个接口 HandlerMethodArgumentResolver 方法参数解析器接口,这个接口是SpringMVC参数解析绑定的核心接口。不同的参数类型绑定都是 阅读全文
摘要:
摘要 本文从源码层面简单讲解SpringMVC的处理器映射环节,也就是查找Controller详细过程。 SpringMVC请求流程 Controller查找在上图中对应的步骤1至2的过程 SpringMVC初始化过程 理解初始化过程之前,先认识两个类 1. RequestMappingInfo类, 阅读全文
摘要:
摘要 上一篇以知乎网为例简单分享网络请求分析。这一篇主要分享一种应对反爬虫的方法,前端数据混淆。 目的 之前写https://github.com/wycm/zhihu-crawler项目的时候,需要用到免费的http代理,然后找到了这个 http://www.goubanjia.com/ 这个网站 阅读全文
摘要:
摘要 从零实现一个高性能网络爬虫系列教程第一篇,后续会有关于url去重、如何反爬虫、如何提高抓取效率、分布式爬虫系列文章。以我写的一个知乎爬虫为Demo讲解,github地址 (https://github.com/wycm/zhihu-crawler) ,有兴趣的朋友可以star下。网络请求的分析 阅读全文