V2EX 09月17日
月饼TV技术架构优化:从数据采集到搜索体验提升
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

月饼TV项目旨在提供快速稳定的搜索体验,其背后涉及复杂的数据处理和存储。文章详细介绍了项目当前的技术架构,包括使用Temporal进行采集调度、Cloudflare D1存储数据,以及通过Meilisearch提供搜索服务。通过优化数据采集流程、引入Meilisearch替代原始SQL查询,并结合Cloudflare Worker的缓存和限流机制,显著提升了搜索响应速度和用户体验。尽管面临Pipeline耗时、数据备份和高负载风险等挑战,项目仍在不断迭代优化中。

🚀 **高效数据采集与存储:** 月饼TV项目采用Temporal进行自动化数据采集调度,每日更新一次,并将采集到的海量数据(已达114万条)高效存储在Cloudflare D1数据库中。采集流程从最初的6小时优化至5.5小时,为后续搜索服务奠定基础。

🔍 **搜索性能的飞跃:** 项目经历了从原始SQL查询到引入Meilisearch的重大技术演进。通过将D1数据导出至独立VPS上的Meilisearch,搜索响应时间从20秒以上大幅缩短,显著改善了用户体验。

⚡ **API优化与服务稳定:** 搜索API集成了Cloudflare Worker,利用Cloudflare KV实现4小时的查询结果缓存,有效降低了Meilisearch的压力。同时,通过IP请求频率限制(每IP每分钟30次)和无需注册的便捷访问,在保证服务可用的前提下,也考虑了防止服务过载的风险。

🛠️ **基础设施与未来规划:** 项目部署在独立的VPS上,包括32GB内存、2TB硬盘的Meilisearch服务器和Temporal服务器。未来的优化方向包括提升Pipeline并发能力、引入分布式存储或备份机制、考虑自建PostgreSQL以提升性能,以及加强安全防护以应对高负载风险。

https://github.com/MoonCakeTV/MoonCakeTV

在构建 月饼 TV 的过程中,我的目标是:为用户提供快速、稳定的搜索体验。但背后涉及的数据源复杂、数据量庞大,如何处理、存储和查询,是一套需要不断优化的技术工程。本文将介绍目前的技术架构和关键优化步骤。

数据来源与采集

所有数据都来自各类资源站。最初我通过手动采集,但很快转向了自动化。

搜索的痛点与演进

数据处理流程( Pipeline )

目前的完整数据流是这样的:

数据源 ---> Temporal Worker ---> Cloudflare D1          ---> Temporal Worker ---> Meilisearch          ---> Cloudflare Worker API

搜索 API 的优化

我在 Cloudflare Worker API 里加了一些增强功能:

这样一来,用户体验基本可用,同时避免了服务过载。

基础设施配置

挑战与展望

目前系统仍然有一些问题:

未来我考虑:

总结

月饼 TV 的技术架构虽然还在不断打磨,但已经走过了一条从“能跑”到“能用”的路:

这套体系支撑了每天百万级的数据更新与快速搜索,积累了不少经验。

大家有什么意见和建议,请不吝赐教

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

月饼TV 技术架构 数据采集 搜索优化 Temporal Cloudflare D1 Meilisearch Cloudflare Worker 性能提升 MoonCakeTV Tech Stack Data Ingestion Search Optimization Performance Improvement
相关文章