Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kan.pdf
Search
vi
June 08, 2012
160
0
Share
kan.pdf
vi
June 08, 2012
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
120
A Tale of Four Properties
chriscoyier
163
24k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
910
The untapped power of vector embeddings
frankvandijk
2
1.7k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Transcript
搜狐随身看 搜狐武汉 2012年6月9日
各部分划分 • 服务器端 ◦ 随身看服务及API ◦ S3兼容存储服务 ◦ 数据净化和转换 •
客户端 ◦ iOS 客户端 ◦ Android 客户端 ◦ Chrome 浏览器插件 • 产品网站
服务功能 • 网页的收藏和抓取及存储 • 网页图片的抓取及存储 • (网页视频的抓取和存储) • 用户书签的管理 ◦
CRUD增删改查 ◦ 已读/未读/历史记录的管理 ◦ 分类的管理 • 用户书签的同步 • 内容的净化和转换
服务设计实现 • 基于RESTful的轻量级Web Service • 异步的URI调用 • Web服务框架 Django •
分布任务分发框架 PyCelery • 消息队列 RabbitMQ • 独立woker process用于处理专项事务 • 支持xml和json两种格式 • Redis实现客户端同步
存储服务功能 • Key-Value 存储 • 数据的存储(更新)、访问和删除 • 基于权限的访问 • 可失效的访问地址
• 数据的目录(bucket)访问、增加和删除
净化转换 • 文本净化 ◦ 通用算法,开源库Readability 研究和改进 ◦ 特定规则,针对各大网站维护相应规则 ◦ 针对不同类型网站的模式学习与匹配
◦ 人工干预 • 资源转换 ◦ 自写或者开源图片格式转换库 ◦ 开源的音频/视频格式转换库 ◦ 提高转换效率
随身看服务的结构
Django • 工程师熟悉
PyCelery & RabbitMQ • 实时要求不高 • 操作分拆 • 易于分布 •
Python兼容高 • 线程要注意安全问题
Redis • 操作频繁 • 持久化要求
Sentry • 集中的日志服务 • 仅接收异常 • UDP • 优秀的控制台 •
报警 • Python
Sohu Cloud Engine • My SQL Proxy • Memcached Cluster
• LVS • S3 Storage
谢谢!