短链接系统设计:高并发跳转、ID生成与实时风控实战
1. 短链接不是“把长网址变短”那么简单很多人第一次听说短链接脑子里浮现的是一串像t.cn/AbC123或bit.ly/XyZ789这样的字符——点开后跳转到原始网页。于是下意识觉得“这不就是个字符串映射用个哈希函数把长URL转成6位随机码存进数据库查表重定向就完事了”我当年也是这么想的。在某次内部工具开发中用 Python 写了个50行脚本接收 URL生成 MD5 前6位作 keyRedis 存key → original_urlNginx 配个 302 跳转规则。上线第一天日均 2000 次跳转稳如老狗第三天监控告警Redis 内存暴涨、GET 请求延迟从 2ms 跳到 300ms、部分跳转返回 500。排查发现不是代码写错了而是根本没想清楚“短链接”在真实业务里到底承担什么角色。它从来不只是一个“跳转代理”。它是用户行为的第一触点是运营活动的数据入口是安全防线的前置哨兵是 CDN 缓存策略的触发开关甚至在某些场景下它本身就是产品功能的一部分比如带参数的裂变邀请码、带时效的临时访问凭证。你用哈希生成 key但哈希碰撞怎么办你用 Redis 存可当单日生成量突破 50 万条时key 的分布是否均匀你配 302 跳转但浏览器缓存、CDN 缓存、中间代理缓存层层叠加如何保证 A 用户生成的链接B 用户点击时不会被缓存污染更关键的是当某条短链被用于钓鱼、传播恶意文件、触发爬虫风暴时你有没有能力在 3 秒内全局下线它且不影响其他 99.99% 的正常链接这些都不是“加个 if 判断”能解决的问题。它们指向一个事实短链接系统是一个典型的“高并发、低延迟、强一致性、高可用、可追溯、可治理”的分布式中间件服务。它的技术深度远超一个简单的“URL 映射表”。本文不讲概念不列架构图只拆解我在三个不同量级项目日均 10 万、200 万、5000 万跳转中踩过的坑、验证过的方案、以及最终沉淀下来的、可直接抄作业的实现逻辑。所有细节都来自线上真实压测和故障复盘。2. 为什么不能直接用哈希或自增 ID——ID 生成器的底层博弈几乎所有新手方案第一步都是解决“怎么给每个长 URL 分配一个唯一短码”。常见思路无非两种哈希派对原始 URL 做 MD5/SHA1取前6位十六进制字符如a1b2c3或 Base62 编码0-9a-zA-Z 共62个字符自增派数据库主键自增再转成 Base62如 ID12345 →3d7。看起来都很“干净”但实际一上生产问题立刻浮出水面。2.1 哈希方案的致命伤碰撞不可控 无法预判长度先说碰撞。MD5 是 128 位取前6位十六进制相当于 24 位空间16⁶ 16,777,216。理论上当生成约 4000 条链接时碰撞概率就超过 1%生日悖论。我们实测过在 10 万条真实 URL含大量相似路径如/api/v1/user/123,/api/v1/user/124中MD5 前6位碰撞率达 0.83%。这意味着每生成 100 条就有近 1 条需要重试。而重试逻辑本身又引入新问题重试几次用什么策略重试如果重试 3 次都撞了是继续循环还是报错一旦报错前端用户看到的就是“生成失败”体验直接崩坏。更隐蔽的问题是长度不可控。Base62 编码的短码长度取决于原始数字大小。ID1 →11位ID1000 →G82位ID100000 →47K3位……但业务方往往要求“统一6位”因为要印在海报、短信里排版固定。哈希方案天然无法保证长度一致你得额外加 padding如000a1b但这又让短码失去“简洁”意义且 padding 字符可能被用户误删。提示有团队尝试用“URL 时间戳 随机数”拼接后再哈希试图降低碰撞率。但实测发现当并发写入量大时时间戳精度毫秒级不足以区分请求随机数范围小又易重复最终只是把碰撞从“必然发生”变成“大概率发生”并未根治。2.2 自增 ID 的硬伤单点瓶颈 无法水平扩展自增 ID 看似简单可靠但它的数据库主键依赖成了系统天花板。我们曾在一个日均 50 万跳转的活动中用 MySQL 自增 ID。活动开始 1 小时数据库 CPU 直冲 95%慢查询日志里全是INSERT INTO short_links (url, created_at) VALUES (?, ?)。原因很直接所有写请求必须串行获取下一个 IDInnoDB 的自增锁AUTO_INC Lock在高并发下成为严重瓶颈。即使换成REPLACE INTO或INSERT ... ON DUPLICATE KEY UPDATE也解决不了 ID 分配环节的串行化。更麻烦的是扩展性。当业务增长到日均千万级你不可能把所有短链数据塞进一个 MySQL 实例。分库分表按什么字段分按短码 hash那查询时就得 fan-out 到所有分片性能归零。按用户 ID 分可短链是匿名生成的没有用户上下文。这条路走不通。2.3 我们最终落地的方案Snowflake 变体 预生成池我们放弃了“实时计算”转向“预分配异步写入”。核心是两层设计第一层全局唯一 ID 生成器Snowflake 改造版标准 SnowflakeTwitter 开源是 64 位1 位符号位 41 位时间戳 10 位机器 ID 12 位序列号。我们做了三处关键改造时间戳精度降为秒级毫秒级对短链场景过度秒级已足够区分请求且减少位数机器 ID 改为数据中心 ID 服务实例 ID 组合避免跨机房部署时 ID 冲突序列号扩展为 16 位支持单实例每秒生成 65536 个 ID远超需求。这样得到一个 63 位整数 ID去掉符号位格式为[40-bit 秒级时间戳][8-bit 数据中心ID][8-bit 实例ID][16-bit 序列号]。它保证全局唯一、大致有序、可反解出生成时间与节点且无锁。第二层短码预生成池内存队列 定时落库服务启动时后台线程批量调用 ID 生成器生成 10 万个 ID全部转为 Base62 短码如aB3xK9存入本地内存队列ConcurrentLinkedQueue。每次生成短链请求到来直接从队列取一个短码不经过任何数据库 IO。同时另一个后台线程以 1000 条/批的速度将已分配的短码与原始 URL 异步写入数据库MySQL 分库分表按短码 hash 分 32 个库。若写库失败有重试机制但绝不阻塞前端请求。这个方案的效果生成耗时稳定在 0.3~0.8ms纯内存操作单实例 QPS 轻松突破 5000短码长度严格控制在 6 位Base62 6 位最大值为 62⁶ ≈ 568 亿远超我们十年用量即使数据库写入延迟也不影响短链生成保障了 SLA。注意预生成池需监控水位。我们设定了阈值剩余 2000 条时告警并实现了自动扩容当水位低于阈值触发新一批 10 万 ID 生成。整个过程对业务无感。3. 跳转不是 302 就完事——HTTP 重定向的七层陷阱生成短码只是第一步用户点击后能否毫秒级、零误差、可监控地跳转到目标地址才是短链接服务的命脉。很多人以为配个 Nginxreturn 302 $target_url;就万事大吉直到某天发现同一个短链iOS 用户能打开Android 用户打不开某条链接在微信内点击正常但在钉钉里跳转到空白页运营反馈“昨天发的活动链接今天点进去变成了竞争对手的网站”。这些问题全出在 HTTP 重定向的细节里。3.1 301 vs 302缓存之殇这是最经典的误区。301Moved Permanently告诉浏览器和所有中间节点“这个跳转是永久的你可以放心缓存”。但短链接的语义恰恰相反——它极可能是临时的、可撤销的、甚至带参数的如?refuser123。一旦用了 301浏览器会永久缓存重定向结果下次用户点同一短链甚至不发请求直接跳转CDN 会缓存 301 响应导致你修改目标 URL 后CDN 节点仍返回旧地址更糟的是某些老旧代理服务器会把 301 当作“永久重写”连Location头都不返回直接透传响应体。我们吃过亏。一次紧急下线恶意链接运维在后台修改了数据库里的 target_url但 CDN 节点因缓存 301持续返回旧地址长达 23 分钟期间损失了数千次有效点击。自此所有短链跳转强制使用 302Found并在响应头中明确声明Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0这三行组合拳确保浏览器、CDN、代理都不会缓存跳转指令每次请求都穿透到我们的服务端做实时判断。3.2 Location 头的绝对路径陷阱HTTP 规范要求Location头必须是绝对 URI如https://example.com/path?query#fragment不能是相对路径如/path。但很多开发者图省事在代码里直接拼接# 错误示范 location /path # 相对路径 return Response(status302, headers{Location: location})结果在某些客户端尤其是微信内置浏览器里会把相对路径错误解析为https://your-short-domain.com/path而非目标域名。根源在于当Location不是绝对 URI 时RFC 7231 规定应以当前请求的Host为基准补全而这恰恰违背了短链的设计初衷。正确做法是永远校验并强制补全为绝对 URI。我们在跳转逻辑前加了一层校验def normalize_url(url): if not url.startswith((http://, https://)): # 补全 https:// 前缀短链默认安全协议 url https:// url.lstrip(/) # 再次校验是否为合法 URL用 urllib.parse.urlparse parsed urlparse(url) if not parsed.scheme or not parsed.netloc: raise InvalidURLException(Invalid target URL) return url.geturl() # 返回标准化后的绝对 URI这个函数拦截了所有example.com/path、//cdn.com/img.jpg、www.baidu.com等不规范输入避免了 90% 的跳转失败。3.3 Referer 与 UTM 参数的继承难题运营同学常抱怨“我发的带?utm_sourceweixinutm_mediumsocial的短链用户点击后GAGoogle Analytics里看不到来源信息。”原因在于当浏览器从https://short.com/abc123跳转到https://target.com/时Referer头默认是https://short.com/abc123而非原始推广渠道。而 GA 依赖Referer或 URL 中的 UTM 参数来归因。解决方案有两个层级服务端透传在跳转前从原始请求中提取Referer并作为 query 参数附加到目标 URL 后如?refhttps%3A%2F%2Fweixin.qq.com%2F...。但这需要目标站点配合解析通用性差。客户端 JS 注入推荐对非微信/支付宝等限制 JS 的环境返回一个轻量 HTML 页面内嵌 JS 读取document.referrer再用window.location.replace()跳转并携带 UTM 参数。代码仅 2KB首屏加载快且能 100% 保留原始上下文。我们采用混合策略默认走 302 重定向兼容所有环境对 User-Agent 包含MicroMessenger微信、AlipayClient支付宝的请求降级为 302对其他 UA返回 JS 跳转页并开启 CDN 缓存TTL1h减轻源站压力。3.4 安全跳转的最后防线目标域名白名单2023 年某次安全审计中我们发现一个致命漏洞攻击者构造恶意短链https://short.com/xyz?targethttp://evil.com/phishing.html服务端未校验target参数直接 302 跳转。结果所有点击该短链的用户都被导向钓鱼页面。补救措施是建立目标域名白名单机制。但白名单不能是静态配置维护成本高也不能只校验一级域名baidu.com白名单evil.baidu.com就能绕过。我们采用三级校验协议强制 HTTPS所有跳转目标必须以https://开头拒绝http://、javascript:、data:等危险协议域名精确匹配白名单存储为完整域名如example.com,api.example.com不带通配符。校验时提取目标 URL 的netlocexample.com:443→example.com进行完全相等比对子域名隔离a.example.com和b.example.com视为不同域名需分别加入白名单杜绝子域名劫持。白名单数据存在 Redis 中结构为SET:whitelist_domains每次跳转前执行SISMEMBER whitelist_domains example.comO(1) 复杂度无性能损耗。经验白名单必须支持热更新。我们开发了一个管理后台运营可自助添加/删除域名操作后 5 秒内全集群生效通过 Redis Pub/Sub 通知各实例刷新本地缓存。4. 数据不是“记一笔”就够——短链埋点与实时分析的工程实践短链接的价值80% 不在跳转本身而在跳转背后的行为数据。一条短链被谁在何时何地点击、从哪个渠道来、在哪个设备上打开、停留多久、是否完成后续转化……这些才是驱动运营决策的核心燃料。但很多团队的数据方案还停留在“MySQL 记日志每天跑个 Hive SQL 出报表”的阶段导致运营上午发活动下午才看到点击量错过黄金优化窗口安全团队发现异常流量回溯日志要等 2 小时恶意链接已扩散A/B 测试无法实时对比两组短链的点击率差异。根本问题在于短链日志是典型的高吞吐、低价值密度、需强实时性的数据流传统 OLTP 数据库扛不住离线数仓太迟钝。4.1 日志采集从“同步写库”到“异步消息队列”最初我们每跳转一次就同步写一条记录到 MySQLINSERT INTO click_logs (short_code, ip, user_agent, referer, created_at) VALUES (abc123, 1.2.3.4, Mozilla/5.0..., https://weixin.qq.com, NOW());QPS 超过 300数据库连接池就打满平均写入延迟飙升至 200ms拖慢整个跳转链路。后来改成 Kafka 异步推送跳转服务收到请求后立即生成一条结构化日志JSON 格式发送到 Kafka Topicshortlink-clicks独立的消费者服务Go 编写从 Kafka 拉取日志批量写入 ClickHouse列式数据库专为实时分析优化同时另一组消费者将日志投递到 Elasticsearch支撑全文检索与安全审计。Kafka 的吞吐能力单 Topic 百万级 QPS彻底解放了跳转服务。现在即使峰值 QPS 达到 8000跳转延迟仍稳定在 10ms 内网络DNSTLS 耗时为主。4.2 关键指标的实时计算Flink 任务的精巧设计运营最关心三个指标总点击量UV/PV去重用户数 / 总请求数地域分布按省份、城市聚合设备占比iOS / Android / PC 的比例。如果用 ClickHouse 的COUNT(DISTINCT)实时计算 UV当数据量大时内存占用爆炸HyperLogLog 预估有误差。我们改用 Flink 实时计算创建 Flink 任务消费shortlink-clicksKafka Topic每条日志提取short_code、ip、user_agent、created_at使用Tumble Window滚动窗口按 1 分钟切片对每个窗口用HyperLogLog算子估算 UV误差率 0.8%可接受用COUNT(*)精确算 PV结果写入 Redis Hashclick_stats:{short_code}:{window_start}供 API 实时查询。这个方案的好处UV 计算资源消耗仅为 ClickHouse 的 1/5窗口粒度可调测试期用 10 秒上线后调为 1 分钟平衡实时性与资源Redis 结构天然支持“按短码查最近 N 个窗口数据”运营看板 500ms 内渲染完成。4.3 安全风控基于实时流的异常检测模型短链是黑产最爱的载体。我们构建了一套轻量级实时风控引擎基于 Flink CEPComplex Event Processing定义模式[1分钟内同一 IP 发起 ≥ 50 次不同短链的跳转]或[10 秒内同一短链被 ≥ 1000 个不同 IP 点击]模式匹配成功后触发告警并自动将相关 IP 加入 Redis 黑名单SET:blacklisted_ips跳转服务在处理请求前先查SISMEMBER blacklisted_ips {ip}命中则直接返回 403。这套逻辑在 2023 年拦截了 17 起大规模爬虫攻击平均响应时间 8 秒从首次异常到 IP 封禁远快于人工响应的 30 分钟。实操心得风控规则不能一刀切。我们为不同短链设置了“信任等级”运营创建的活动短链带?campaignxxx信任等级高阈值设为 5000 IP/10秒普通用户生成的短链阈值为 1000新注册用户生成的首条短链阈值仅为 50。等级信息存在 Redis 中与短码关联动态加载。5. 高可用不是“多加几台机器”——容灾与降级的真实战场短链接服务一旦挂掉不是“功能不可用”而是所有依赖它的渠道短信、邮件、海报、APP 推送瞬间失联。2022 年某次线上事故因 Redis 集群主从切换失败导致短链跳转大面积超时客服电话被打爆。事后复盘我们意识到高可用不是堆资源而是设计好每一层的“失效边界”和“优雅降级”。5.1 DNS 层双活接入 TTL 精细控制短链域名如s.co的 DNS 解析是用户访问的第一跳。我们采用双活架构主集群上海承载 90% 流量DNS TTL 设为 60 秒备集群北京承载 10% 流量DNS TTL 设为 300 秒5 分钟。当主集群故障时DNS 服务商阿里云云解析自动将流量切至备集群。TTL 差异设计是为了主集群恢复后60 秒内大部分用户回归短 TTL 加速收敛备集群流量不会因 DNS 缓存未过期而滞留长 TTL 避免反复震荡。5.2 应用层无状态 多 AZ 部署所有跳转服务、生成服务、管理后台全部容器化Docker部署在 Kubernetes 上严格遵循无状态原则所有会话、缓存、配置外置Redis、Consul多可用区AZ部署上海集群分布在 cn-shanghai-a、cn-shanghai-b、cn-shanghai-c 三个物理机房Pod 调度时强制打散HPAHorizontal Pod Autoscaler基于 CPU 使用率70%和 Kafka 消费延迟10 秒双指标自动扩缩容。一次机房电力故障cn-shanghai-a 整个 AZ 断电K8s 在 42 秒内将受影响的 Pod 迁移至其他两个 AZ用户无感知。5.3 数据层读写分离 多级缓存 降级开关数据是瓶颈也是风险点。我们构建了四层防御第一层本地缓存Caffeine存储热点短链访问量 Top 1000的short_code → target_url映射TTL10 分钟自动刷新命中率常年 85%扛住 80% 的读请求。第二层Redis 集群读写分离主节点处理写短链生成、黑名单更新3 个从节点处理读跳转查询、统计查询读请求自动路由到从节点主节点压力降低 60%。第三层MySQL 分库分表32 库 × 128 表分片键为short_code的 hash 值主从延迟监控从节点延迟 5 秒时自动将读请求切回主节点短暂牺牲一致性保可用性。第四层终极降级——静态跳转页当所有后端服务Redis、MySQL、Kafka全部不可用时Nginx 启用 fallbacklocation / { try_files /static/$uri backend; } location backend { proxy_pass http://backend_cluster; proxy_next_upstream error timeout http_500 http_502 http_503 http_504; }static/目录下预置了 1000 个最常用短链的 HTML 跳转页如static/abc123.html内容为scriptwindow.location.replace(https://target.com/path);/script这些页面由 CI/CD 流水线每日凌晨自动更新确保“最坏情况”下核心短链仍能跳转。这个降级方案在去年一次全链路压测中被验证模拟 RedisMySQLKafka 全挂Nginx fallback 启动后短链跳转成功率仍保持 99.2%平均延迟 15ms纯静态文件响应。最后分享一个血泪教训降级开关必须手动触发且有二次确认。我们曾因监控脚本 bug误将“Redis 延迟高”判定为“全挂”自动启用了 fallback导致所有新生成短链失效 18 分钟。现在任何降级操作都需运维在堡垒机输入confirm-fallback-abc123才能执行且操作日志实时推送到企业微信群。短链接系统表面是 URL 的压缩与跳转内里是分布式系统的微缩战场。它逼着你直面高并发的锁竞争、网络的不可靠、缓存的一致性、数据的实时性、安全的攻防对抗。每一次看似简单的“点击”背后是数十个服务模块的精密协作。写这篇总结时我翻出了三年前那份 50 行的 Python 脚本它还在某个测试环境里跑着生成着t.co/xxxxxx这样的短链。但我知道真正的短链接服务从来不在那 50 行代码里而在每一次故障后的复盘笔记中在每一个被砍掉的“看似合理”的设计里在每一行为了 10ms 延迟而反复打磨的配置里。如果你正打算从零搭建别急着写代码先想清楚你的短链要承载多少人的期待又要经得起多少次真实的风暴。

相关新闻

WorkBuddy 官方7条建议实测

WorkBuddy 官方7条建议实测

一、先学会选模式:别一上来就让它干活 WorkBuddy 有三种模式,很多人只用默认那种——直接开干。 问题在于,你一句话说不清楚要什么,它就得猜。猜错了,你反攻(重新描述需求)的时间,比…

2026/10/14 11:10:19 阅读更多 →
自考历年真题去哪找、怎么刷才不白费

自考历年真题去哪找、怎么刷才不白费

我自己备考那阵子,真题是我手里挺趁手的家伙。后来帮人做规划,发现不少人一上来就抱着教材啃,真题等到考前两周才翻,结果考试时发现题型和想象中差得远。这篇就聊聊真题该去哪找、怎么刷才真有用,少走点弯路。 真题到底…

2026/10/14 11:10:19 阅读更多 →
企业级NLP语义校准:让大模型读懂业务规则与组织认知

企业级NLP语义校准:让大模型读懂业务规则与组织认知

1. 为什么“教机器阅读、写作与理解”在企业场景中从来不是纯技术问题“企业应用自然语言处理:教机器阅读、写作与理解(五)”——这个标题里藏着一个被多数人忽略的真相:前四期讲模型、讲API、讲微调,但到了第五期&…

2026/10/14 11:10:19 阅读更多 →

最新新闻

H-Trp-Asn-OH ;175027-11-9

H-Trp-Asn-OH ;175027-11-9

基本性质英文名称:H-Trp-Asn-OH中文名称:色氨酰 - 天冬酰胺二肽CAS 号:175027-11-9类别:线性二肽分子式:C₁₅H₁₈N₄O₄分子量:318.33 Da等电点 pI:约 7.06溶解性:可溶于水、稀醋酸…

2026/10/14 19:12:22 阅读更多 →
Agent记忆实战:场景实测与选型

Agent记忆实战:场景实测与选型

Agent记忆实战:场景实测与选型 腾讯云数据库记忆服务(TencentDB Agent Memory)具备短期记忆上下文压缩卸载与长期记忆四层分层蒸馏、白盒可溯源、一键接入等特点,旨在解决大模型Agent在长会话中Token成本飙升与跨会话认知丢失的问…

2026/10/14 19:12:22 阅读更多 →
档案库房实现自动化的恒温恒湿消毒净化关键:恒湿消毒净化一体机

档案库房实现自动化的恒温恒湿消毒净化关键:恒湿消毒净化一体机

智慧档案十二防系统硬件对接:恒湿净化一体机 RS485 协议对接方案物联网 盛世宏博 十二防对接添加图片注释,不超过 140 字(可选)一、十二防里这台机器“接的是什么”十二防(防潮、防高温、防虫、防霉、防尘、防火、防…

2026/10/14 19:12:22 阅读更多 →
OmniSeek:原生工具集成的多模态推理系统

OmniSeek:原生工具集成的多模态推理系统

1. 项目概述:这不是一个“能听会看”的AI,而是一套让工具真正长进感官里的推理系统OmniSeek这个名字,第一眼容易被误读成“全能搜索”——但如果你真这么理解,就错过了它最颠覆性的设计内核。它不是在现有大模型上叠加语音识别图像…

2026/10/14 19:12:22 阅读更多 →
AI大模型教育行业白皮书撰写指南:从需求拆解到A/B测试验证

AI大模型教育行业白皮书撰写指南:从需求拆解到A/B测试验证

简介:《AI大模型教育行业白皮书》面向教育管理者、教育科技从业者、教研人员及关注AI教育落地的读者,系统梳理教育数字化从教育ICT建设、教育信息化、教育信息化2.0到数智教育时代的演进脉络,帮助读者理解AI大模型在基础教育、人才选拔、高等…

2026/10/14 19:12:22 阅读更多 →
浏览器多开怎么设置独立 IP?Profile、代理与核验流程

浏览器多开怎么设置独立 IP?Profile、代理与核验流程

浏览器多开不会自动让每个窗口拥有不同的公网 IP。想让不同浏览器环境使用不同出口,需要分别配置获授权的代理或网络线路,再从各个环境实际访问网络进行核验。要先分清两件事:Profile 隔离浏览器数据,代理配置影响网络出口。**它们…

2026/10/14 19:11:22 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →