多账号跑任务,ip怎么分决定后面顺不顺。把环境拆成五层:设备层、程序层、线路层、账号层、记录层,每层只解决一个问题。分层的目的在于出问题能定位到具体哪一层,改一层不影响其他层。
五层各管什么
| 层次 | 管什么 | 做不到会怎样 |
|---|---|---|
| 设备层 | 机器与窗口之间的隔离 | 窗口之间的痕迹互相干扰 |
| 程序层 | 每个窗口用哪个客户端与配置 | 改一处影响一大片 |
| 线路层 | 每条线落在哪个段 | 分散变成看起来同一个地方 |
| 账号层 | 账号与线路的对应关系 | 出问题回溯困难 |
| 记录层 | 留痕与变更表 | 现场还原不出来 |
五层按顺序落,跳层做的部分以后都要补回来。
设备层管的是机器本身。同一台机器上开很多窗口,窗口之间的痕迹会不会串,取决于程序有没有做隔离。做隔离的方式有两种:独立的程序实例,或者支持多配置的客户端。两种都能用,前者更彻底,后者更省资源。这一层不做,后面四层做得再好也没用。
程序层管的是每个窗口用哪个客户端、读哪份配置。配置文件按窗口编号命名,一份配置对应一条线路,改的时候只改一份,不会牵动别的窗口。配置混在一起,改一处影响一片,是返工最常见的来源。这一层最容易图省事,把二十个窗口塞进一份配置,省了十分钟,后面每天都得多花半小时核对。
分层做到几层就够了
看任务规模。三五个账号,设备层和线路层做对就够;二十个以上,五层都要有记录,否则排一次问题要一整天。
线路层管的是每条代理IP线路落哪个段。同一个段里的线太多,对外看像是一个地方出来的,分散的意义就没了。把线摊到三个以上的段,同时确认每个段的速度都测过。线路层和程序层要能对上,哪条线给哪个窗口用,表里写清楚。写清楚之后,换线只动一行,不牵动别的窗口,这是线路层能长期维持的前提。
记录层为什么不能省
记录层管的是留痕。哪个窗口、哪条线、代理IP什么时候换的、换的原因,四列写下来。这一层不产生任何直接的收益,出问题时却是唯一能还原现场的东西。记录不全,前面四层的判断都只能靠猜。
分层做的顺序是设备、程序、线路、账号、记录,前四层每落一层就验证一次,最后把表补齐。
分层不是越细越好,是多一层多一次验证。
账号层管的是每个账号的日常行为落在哪条线上。同一个账号长期走同一条线,变动少,出问题好回溯;一天换三条线,变动多,回溯就难。按账号的重要程度分配线路,比平均分配合理。
五个层次落完,代理IP怎么分也就定了。层次少不代表省事,只代表出了问题找不到原因。先把表建起来,再按层往里填,比一次全上快。
