How Digg is Built:讲述Digg背后的技术,互联网营销

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:   虽然最近业绩有所下滑,也出现了一些技术故障,但Digg作为首屈一指的社会化新闻网站,其背后的技术还是值得一探,最近Digg工程师 Dave Beckett 的一篇名为《How Digg is Built》的文章,非常系统地将Digg背后的技术展现给大家,非常值得一看。

  虽然最近业绩有所下滑,也出现了一些技术故障,但Digg作为首屈一指的社会化新闻网站,其背后的技术还是值得一探,最近Digg工程师 Dave Beckett 的一篇名为《How Digg is Built》的文章,非常系统地将Digg背后的技术展现给大家,非常值得一看。NoSQLFan 简要翻译如下:

  一、Digg提供的服务

  • 一个社会化的新闻网站
  • 对个人来说它又是一个私人社会化新闻发布平台
  • 一个广告平台
  • 一个开放API的平台
  • 博客及文档系统

  二、Digg 的核心功能

  • 文章提交功能 – 提交你认为有价值的新闻。
  • 文章列表功能 – 将用户提交的新闻做各种不同纬度的列表(个人新闻,最近发布等)。
  • 对文章的操作 – 用户可以对文章进行各种操作,包括阅读、点击、digg、评论、为评论评分等等。
  • 置顶文章功能 – Digg会定时将一些热门的文章置顶到Digg首页,从页让更多人能够看到。 

  三、Digg功能的背后的实现

  首先我们看一个流程图,描述了普通用户在使用Digg其间Digg的具体模块运作:

  其实这中间的操作包括了两部分:同步和异步

  • 对用户进行即时响应的同步操作:同步操作主要表示对用户请求(包括API请求)的即时快速响应,包括一些在页面中通过AJAX方式进行的异步请求。这些操作通常要求最长一两秒的时间内就能完成。
  • 离线批量进行的异步计算:除了实时响应的请求外,有时候还需要进行一些批量的计算任务,这些任务可能是间接的被用户启动的,但用户不会等待这些任务的完成。这些异步计算通常可能会花费数秒,数分钟甚至几小时。

  这两部分在Digg中的应用方式可以用下面这张图描述:

  上面是总体概述,下面一部分我们会深入Digg的各个功能部件进行深入研究。

  1. 在线Web系统

  提供Web页面服务及API服务的部分组成如下:PHP作前端语言构建的CMS系统,Python构建的API服务器,它们运行在 Tornado 上。它们通过 Thrift 协议 与主存储层进行交互,很多数据会被如Memcached 和Redis 这样的内存缓存系统缓存。

  2. 消息系统

  Digg 使用 RabbitMQ 作队列系统,将不用同步响应的操作放到队列异步地进行。

  3. 批量异步处理系统

  上面的消息系统是指队列,而这个指的是具体从队列取出任务执行的部分。此系统将任务从队列中取出,进行一定的计算后再对主存储进行操作,对主存储的操作在实时系统和异步批量系统中都是一样的。

  4. 数据存储层

  数据存储层Digg使用了多个产品来完成各种不同的任务,具体列表如下:

  • Cassandra:对诸如文章、用户、Digg操作记录等“Object-like”的信息,都是使用Cassandra来存储的。我们使用的是Cassandra0.6版本,由于0.6版本并没有劫持二级索引,于是我们将数据通过应用层处理后再用它进行存储。比如我们的用户数据层提供通过用户名及Email地址来查询用户信息的接口。
  • HDFS:主要用到日志信息存储及分析计算,利用 Hive 操作 Hadoop,进行MapReduce计算。
  • MogileFS:是一个分布式文件存储系统,用以存储二进制的文件,比如用户头像,截屏图片等。当然,文件存储的上层还有统一的CDN。
  • MySQL:目前我们的文章置顶功能上使用了MySQL存储一些数据,因为这一功能需要大量的JOIN操作。与此同时 HBase 好像也是个不错的考虑。
  • Redis:由于 Redis 的高性能及其灵活的数据结构,我们用它来提供对 Digg Streaming API 的存储,同时我们还用Redis 来构建实时浏览和点击计数器。
  • SOLR:用来构建全文索引系统。以提供对文章内容、话题等的全文检索。
  • Scribe:日志收集系统,比syslog-ng更强大更简单。用它收集的日志会被放到HDFS进行分析计算。

  5. 操作系统及配置

  Digg runs on Debian stable based GNU/Linux servers which we configure   with ClustoPuppetand using a configuration system over Zookeeper.

  原文链接:http://about.digg.com/blog/how-digg-is-built

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
【图像生成技术】人工智能在广告营销的革新:图像生成技术的应用与实践代码示例
随着人工智能技术的飞速发展,广告营销行业迎来了前所未有的变革。图像生成技术,作为AI领域的一颗璀璨明星,正被广泛应用于创造个性化、高吸引力的产品展示图、海报乃至宣传视频,以精准对接目标受众,显著提升广告的转化率和整体营销效果。本文将深入探讨这一技术的应用场景,并通过一个简单的代码示例,展示如何利用深度学习框架TensorFlow来实现创意图像的自动生成。
80 4
|
5月前
|
数据可视化 搜索推荐 物联网
室内定位新突破:基于3D可视化与iBeacon技术的商场导航营销系统
**维小帮商场导航系统利用3D GIS、iBeacon定位、VR及物联网技术,提供3D导航、AR实景指引、设施查找及位置分享功能,提升顾客体验,增强商场品牌,推动经济效益增长。通过精准路径规划和沉浸式导航,用户能轻松找店,商场则塑造了智能形象,促进了交易量。**
96 1
室内定位新突破:基于3D可视化与iBeacon技术的商场导航营销系统
|
5月前
|
搜索推荐 数据挖掘 UED
数字营销技术:社交媒体与SEO的深度融合
【6月更文挑战第23天】在当今数字时代,社交媒体与SEO成为企业营销的关键。社交媒体提供互动平台,增强品牌影响力,而SEO则优化网站排名,吸引流量。两者融合,通过内容共享、链接策略、关键词优化及数据分析,提升品牌知名度,改善用户体验,共同驱动营销效果。企业需抓住这一融合趋势,以适应市场变化和客户需求。
|
5月前
自适应IT互联网营销企业网站pbootcms模板
一款蓝色自适应IT互联网营销企业网站pbootcms模板,该模板采用响应式设计,可自适应手机端,适合一切网络技术公司、互联网IT行业,源码下载,为您提供了便捷哦。
54 2
|
5月前
|
敏捷开发 存储 前端开发
【美团技术】领域驱动设计DDD在B端营销系统的实践
【美团技术】领域驱动设计DDD在B端营销系统的实践
|
5月前
|
机器学习/深度学习 人工智能 搜索推荐
AI在市场营销技术中的崛起:转变数字营销策略
AI在市场营销技术中的崛起:转变数字营销策略
|
6月前
|
人工智能 算法 双11
「我在淘天做技术」双11背后的营销技术体系
每年的双11都会吸引亿级消费者、百万商家参与,会场、红包、优惠券,各类玩法目不暇接。作为大促的主阵地,淘天营销技术经过多年大促的历练沉淀,沉淀了丰富的业务能力,支撑了大促、营销频道等各种营销业务场景。本文将为大家介绍下营销技术体系。
|
6月前
|
人工智能 算法 前端开发
在淘宝,营销技术团队如何支持双11?
在淘宝,营销技术团队如何支持双11?
185 0
|
机器学习/深度学习 前端开发 算法
营销场景下互动技术的应用与探索
营销场景下互动技术的应用与探索
127 0
|
存储 人工智能 安全
TalkingData三大产品创新,引领2022数字营销技术新格局
TalkingData三大产品创新,引领2022数字营销技术新格局
151 0