springboot实现java代理IP池ProxyPool,提供可⽤率达到95%以
上的代理IP
⼀、背景
前段时间,写java爬⾍来爬⽹易云⾳乐的评论。不料,爬了⼀段时间后ip被封禁了。由此,想到了使⽤ip代理,但是了很多的ip代理⽹站,很少有可以⽤的代理ip。于是,抱着边学习的⼼态,⾃⼰开发了⼀个代理ip池。
⼆、相关技术及环境
技术: SpringBoot,SpringMVC, Hibernate, MySQL, Redis , Maven, Lombok, BootStrap-table,多线程并发
环境: JDK1.8 , IDEA
三、实现功能
通过ip代理池,提供⾼可⽤的代理ip,可⽤率达到95%以上。
通过接⼝获取代理ip 通过访问接⼝,如:返回代理ip的json格式
{
"code":200,
"data":[
{
"available":true,
"ip":"1.10.186.214",
"lastValidateTime":"2018-09-25 20:31:52",
国外java php"location":"THThailand",
"port":57677,
"requestTime":0,
"responseTime":0,
"type":"https",
"useTime":3671
}
],
"message":"success"
}
通过页⾯获取代理ip 通过访问url,如:返回代理ip列表页⾯。
提供代理ip测试接⼝及页⾯通过访问url, 如:(get)测试代理ip的可⽤性;通过接⼝  ](post data: {"ip": "127.0.0.1","port":8080} )测试代理ip的可⽤性。
四、设计思路
4.1 模块划分
爬⾍模块:爬取代理ip⽹站的代理IP信息,先通过队列再保存进数据库。
数据库同步模块:设置⼀定时间间隔同步数据库IP到redis缓存中。
缓存redis同步模块:设置⼀定时间间隔同步redis缓存到另⼀块redis缓存中。
缓存redis代理ip校验模块:设置⼀定时间间隔redis缓存代理ip池校验。
前端显⽰及接⼝控制模块:显⽰可⽤ip页⾯,及提供ip获取api接⼝。
4.2 架构图
五、IP来源
六、如何使⽤
前提:已经安装JDK1.8环境,MySQL数据库,Redis。
先使⽤maven编译成jar,proxy-pool-1.0.jar。
使⽤SpringBoot启动⽅式,启动即可。
java -jar proxy-pool-1.0.jar
实际使⽤当ip代理池中可⽤ip低于3000个,可⽤率在95%以上;当代理池中ip数量增加到5000甚⾄更多,可⽤率会变低(因为开启的校验线程数不够多)
有什么使⽤的问题欢迎回复。。。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。