Featured image of post 『Blog』V2RSS云彩姬最佳实践(阶段Ⅰ)

『Blog』V2RSS云彩姬最佳实践(阶段Ⅰ)

简要介绍一些在技术文档中未被提及的隐藏机制;针对 demo 玩家提出几点有助于提升使用体验的应用技巧。

项目简介与使用指南

V2RSS 是一个能对全球范围内基于 SSPanel-Uim 框架产出的服务提供商进行垂直挖掘的「生态矿机」;能够自下而上地生成针对主流协议头的「聚合采集」任务;能够自我消化并产出相较于 proxypool 更加纯净可靠的代理节点;具备自主发现,服务自愈等强大的生产特性。

  • 有关云彩姬(panel)的介绍详见 技术文档 ,了解软体获取方法以及功能介绍。
  • 有关云彩姬(public-service)的介绍详见 项目仓库,了解服务部署方法。

最佳实践

Synergy与延迟反射机制

简介

  • synergy 在计算机领域中有“协作”“协同”的定义;

  • synergy 在大多数情况下 与「延迟反射」一起使用,并称「协同反射」,是一个在 v2rss v4.5.5 版本中开源的模式;

  • synergy 基于集群运行,具备「任务超载」「服务自愈」等高级特性,即使在所谓高峰期也能高效完成协同任务。

特性

客户端玩家无需关心「协同反射」的上游实现逻辑。「协同反射」在客户端的表现为:能通过协同注册的方式拉起不可用节点,续订过期链接, 延拓订阅可用流量,而这种延拓具有一定的延迟回馈。

也即当您使用客户端请求/获取一条订阅链接并在更新订阅后通过 remark-label 得知订阅可用流量仅有 1GiB/2GiB/几十MiB 时,不必着急质疑上游服务质量,您可以等待一段时间后更新订阅,体会「synergy」机制带来的体验升级——当前订阅的可用流量持续增长(更新订阅后通过 remark-label 观察 ),这个过程将在 30~120s 内完成,可用流量将增长 10GiB+。

v2rss v4.5.6 服务优化版本中,「延迟」的概念被逐渐淡化。“流量延拓”的行为被桥接至消息队列中,也即每当有新的链接入库,「synergy」机制就会生效 ,为 proxy-pool 中的订阅延拓可用流量。换句话说,大多数情况下,用户获取到的链接的可用流量已被完整“延拓”;仅当需求高峰时,synergy 来不及执行,用户才会获取到“正在被处理”(订阅当前的剩余流量明显不满足日常需求)的订阅链接。

警惕重用与覆盖

简介

v2rss 客户端 使用 easygui 编写,是一个纯静态前端面板(这是云彩姬 panel 敏捷开发中的遗留 BUG),即便数据端使用 redis 高速缓存维护 proxy-pool,也无法应对「请求覆盖」等并发需求场景。

换句话说,用户通过「查看订阅」观察到的订阅列表可能已经变更,可能的改动为:其他用户取链接,上游服务清除无效订阅,此时用户依据可视内容而选取的链接很可能是“已被获取的链接”以及“已被清除的无效链接”。后一种情况较为罕见,而一旦出现前一种情况,就非常麻烦了。绝大多数服务提供商都会限制 low-level 节点的设备并行连接数,这种限流机制通常是通过逻辑脚本进行监听的,当多个IP共享同一订阅并触发断流机制时,代理用户的订阅链接将被重置(轻则流量清零重则删号,这是服务提供商用以防止流量泄露的常用方案)。

推荐用法

  • 使用「快速获取」替代「查询获取」

    快速获取操作依靠 redis 自带的机制运行,具有全局原子性,不会引发上文所述的恶劣情况(redis 常用于百万并发的应用场景,而由云彩姬 panel 的并发量一般情况下不会超过 2 位数,放心使用)。

  • 减少「查询」与「获取」间的衔接用时(🤷‍♂️)

    如上文所述,节点列表反应的并不是 proxy-pool 的实时状态,减少操作衔接用时可以避免获取到“已被其他用户获取”的订阅,但实际上这无法避免这条链接被其他用户获取(也即B用户在你获取订阅前查询 proxy-pool,那么你已获取的链接依然会出现在他的 panel 中,他有 1/pool_siz 的概率点中你已获取的链接👀)。

User_profiling 与 beat_dance

采集器会根据群体画像(基于Relative Daily Activity FiguresAction Value 以及 Corrected Accuracy)调整任务的发起顺序(原子概率)。

  • Relative Daily Activity Figures:群体喜好与需求量。建立“节点速度”“可用时长”“一次性可用流量区间”等喜好程度标签。
  • Action Value:运行评分,与资源占用率和获取效率有关。
  • Corrected Accuracy:模型会根据实时的需求变动预测下一时间段的需求走向,并根据观测值不断修正并精确画像模型。

呼吸节拍(beat dance)是一个协调运行实例的上层抽象,它基于定时任务和群体画像(user profiling)生产工作周期稳定,带有“运行时停顿”等行为特征的运行实例。

以上两个机制共同决定了采集器的启动权限,启动时间,工作时长,运行功率以及运行时各个生命周期间的休眠时间。

开放使用的 proxy-pool 容量较低,以减轻不可抗力因素与恶意行为对数据集造成污染。一般情况下 pool-length ≤ 50 < pool-cap

You will to enjoy grander sight / By climing to a greater height.