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
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
kan.pdf
vi
June 08, 2012
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
370
How to build a perfect <img>
jonoalderson
1
5.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
210
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
430
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
The browser strikes back
jonoalderson
0
1.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Speed Design
sergeychernyshev
33
1.9k
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
谢谢!