Commit de1c827f authored by Administrator's avatar Administrator

方案简述

parent 1408571f
Pipeline #328 failed with stages
# g4proxy
使用手机4G流量提供高质量的代理服务
\ No newline at end of file
使用手机4G流量提供高质量的代理服务
考虑抓取服务,需要使用稳定的代理ip。一般我们会使用代理服务供应商的代理。分:
1. 免费代理,如西刺 [西刺](https://www.xicidaili.com/nn/) 特点:全网扫描得来,并不稳定。因为不是自己维护的节点,而是通过类似漏洞的方式拿到其他人提供的免费的无鉴权的接口。服务不稳定,DNS解析失败等
2. 收费共享代理,如代理云:[代理云](http://www.dailiyun.com/) 第三方提供的代理服务。较为稳定,也有独享类型。不过价格教贵,且无法自己控制拨号
3. 购买ADSL,半自建方式。在其他供应商那里购买ADSL线路进行拨号放大ip,这个能够自己独立控制拨号,ip空间一般能够做到百万级别的映射。但是投入较高,且一旦ip被污染,损失非常巨大。这种方案适合公司内部统一的代理服务建设。
以上所有方案,ip均来自服务或者小区宽带。服务器ip特征很明显,大部分用户不会使用服务器ip入网。小区宽带一般在家里使用WiFi的时候使用。但是小区宽带的ip,多有网段特性。一般一个小区的ip资源,会固定在某个网段下。这会导致我们的ip会有特征暴露问题。
目前,考虑使用手机4G提供代理服务。相对于宽带来说,4G流量放大空间更广。且可以部署在较为繁华的地方。及其容易隐藏在真实用户流量下。
## 面临的问题
最大的一个问题,手机的移动特性很大。没有固定ip,无法直接通过代理服务器的方式,提供代理服务集群。我考虑使用长连接的方式解决这个问题。
## 基本方案
1. 提供一个统一的代理服务器,部署在公网(netty http/https proxy)
2. 提供一个手机程序,作为agent部署在装有4G卡的手机里面
3. 手机agent通过长连接的方式,和server建立channel。并保证 idle channel>=1 (也即,至少拥有一个空闲的channel,如果有很多的代理请求,那么可能有其他请求使用了channel,当channel资源不够的时候,agent异步的主动链接服务器建立channel通道)
4. 所有在服务器的channel,安装clinet id分组。构建资源池。在进行代理转发的时候,提供资源管理模型
5. 当用户的代理请求调用过来的时候,在channel资源池中,根据需要选择一个channel,转发请求(考虑通过固定header绑定到固定的手机下面,可以使用一致性hash算法)
6. 考虑多台代理服务器的实现
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment