CRS 内部控制台

采样器sampling-url.crs.tongsou.com

域名进,渲染规则出。域名 → 采样 3~5 页 → 判定 → 产出渲染配置 → 回调调度器。

服务边界

CONTRACT.md §一 · 采样器不直连目标站点,所有对外请求走 crs.tongsou.com/v1/render

⚠️ 本服务没有 HTTP 客户端。页面、robots.txt、sitemap.xml 全部通过下载器取。非渲染需求用 should_render = false,只取原始响应,同样受限速约束

⚠️ 不读写调度器的任何表,尤其不碰 scheduler:domain_health_runtime。站点可用性由调度器自己的请求判定,采样器不参与;反过来,采样时遇到的 403 也不写调度器的健康表 —— 两边各自从自己的请求里获得证据

为什么这是一个独立服务

DEV-sampler.md §一 · 判定的单位是域名,抓取的单位是 URL

activity动作unit单位frequency频率
采样判定域名每域名一次 + 周期复核
抓取渲染URL每域名成百上千次

200 万页面的判定成本可坍缩为数千次采样。这是拆出本服务的全部理由。

判定结果分布

sampler:domain_rule:{domain} · 唯一写入方 采样器

domain_rule规则表合计
134,706
judgement_task判定任务进行中
1,204
domain_claim_task被外部认领
486
本期到期待复核
2,910
verdict判定结论 count域名数 share占比 share scheduler action调度器动作(引用,本服务不执行)
csr确定是 CSR108,41280.5% 正常入队
partial分歧大 / 混合14,31810.6% 入队,降优先级
ssr传统爬虫可抓8,2046.1% 记录,丢弃该域名后续链接
unknown判定失败3,7722.8% 记录,丢弃该域名后续链接;重采与导出归采样器

⚠️ verdict 是枚举不是布尔。布尔会让 partial 坍缩成 falsy 被当作 SSR 丢弃 —— 而 partial 恰是「分歧极大、最不该静默丢」的那批。本服务的阈值刻意偏向「宁可多抓」,字段类型不能把这个取舍抵消掉。

⚠️ ssrunknown 的域名同样写入 sampler:domain_rule。否则每次遇到该域名的链接都会重新采样 —— 一个被上万页面链接的失败域名,每被链接一次就真烧 3~5 次渲染。

⚠️ unknown 不再「转人工」。调度器收到回调即删除该域名的判定任务,后续重采责任完全归本服务。两边都重试会导致重复提交。

五张表

CONVENTION.md 第三条 · 每张表恰好一个写入方,写在 schema.go 注释第二行

keysuffix后缀 purpose用途page对应页面
sampler:domain_rule:{domain}_rule判定结果,一次写定、长期保留域名
sampler:judgement_task:{task_id}_task判定任务,有终态、完成即删判定任务
sampler:ratio_history:{domain}_historyratio 历史,复核比对,按条数或时间裁剪域名规则详情
sampler:robots_rule:{domain}_rulerobots 解析结果,复核时刷新robots 规则
sampler:domain_claim_task:{domain}_task外部认领状态,有 TTL、到期自动交还外部认领

⚠️ judgement_taskdomain_rule 已按第三条分开:前者有终态、完成即删、高频改写,后者一次写定、长期保留、供他人读。选不出表名后缀,就说明这张表干了两件事。

⚠️ 表清单不在文档里维护,从 schema.go 生成,代码是唯一来源。本页是只读呈现,不是第二份真相源。

导出率:采样器质量的在线代理

DEV-sampler.md §8.7 · 漏判率是离线标定的,上线后无法持续观测

signal信号meaning说明current当前
导出率上升采样器在退化:阈值漂了 / 反爬普及 / 新语种未标定2.8% 持平
回流解决率高采样器放弃太早,阈值该放宽61.4%
回流解决率低这批确实超出能力范围,导出是对的

这是整套系统里第一个能直接反映采样器质量的在线数字。回流解决率 61.4% 偏高,按上表第二行的解读,说明部分域名本可以自己判出来 —— 应回到阈值标定复核基线,而不是继续加大导出。

上线门槛

DEV-sampler.md §十 · 采样器唯一的门槛,也是它的核心价值

threshold门槛content验证内容target目标state状态
阈值标定 四语种各抽 200 个域名,人工标注,跑判定得出 ratio 分布,再定阈值 漏判率 < 5%;产出四组阈值、漏判率、误判率、骨架特征命中率 进行中
样本量验证 同一域名用 1 / 3 / 5 / 10 个样本判定,看结论何时收敛 确定最小够用的 page_sample_count 待验证

⚠️ 两类错误代价不对称:误判(SSR 当 CSR)只浪费渲染成本,漏判(CSR 当 SSR)是永久丢内容。阈值必须偏向「宁可多抓」。详见阈值标定