数据人看Feed流-架构实践】的更多相关文章

背景 Feed流:可以理解为信息流,解决的是信息生产者与信息消费者之间的信息传递问题.我们常见的Feed流场景有:1 手淘,微淘提供给消费者的首页商品信息,用户关注店铺的新消息等2 微信朋友圈,及时获取朋友分享的信息3 微博,粉丝获取关注明星.大V的信息4 头条,用户获取系统推荐的新闻.评论.八卦 关于Feed流的架构设计,包括以上场景中的很多业内专家给出了相应的思考.设计和实践.本人是大数据方向出身的技术人,所在的团队参与了阿里手淘.微淘Feed流的存储层相关服务,我们的HBase/Lindo…
业务中很多需求都会用到类似feed流的架构. 例如 微信朋友圈 微博 动态 1对N消息. 一般feed流的架构实现有下面几种. 假如现在的业务场景是微博,然后当前的数据情况是: 用户A关注了用户B和C,用户D关注了用户B 用户B发了微博A,B,用户C发了微博C,D 1. 拉 数据表 微博表(字段有:微博ID,微博内容,发布人) 代码逻辑: 用户 B发布微博接口,插入记录到微博表,只有一行记录 用户A获取我关注的用户的微博接口: 获取当前登录用户关注的用户,例如A关注的用户B和C 获取B和C发布的…
一.背景 随着项目逐渐扩展,业务功能越来越多,代码量越来越多,开发人员数量也越来越多.此过程中,你是否有过以下烦恼? 项目模块多且复杂,编译一次要5分钟甚至10分钟?太慢不能忍? 改了一行代码 或只调了一点UI,就要run整个项目,再忍受一次10分钟? 合代码经常发生冲突?很烦? 被人偷偷改了自己模块的代码?很不爽? 做一个需求,发现还要去改动很多别人模块的代码? 别的模块已实现的类似功能,自己要用只能去复制一份代码再改改? "这个不是我负责的,我不管",代码责任范围不明确? 只做了一…
朱晔的互联网架构实践心得S1E10:数据的权衡和折腾[系列完] [下载本文PDF进行阅读] 本文站在数据的维度谈一下在架构设计中的一些方案对数据的权衡以及数据流转过程中的折腾这两个事情.最后进行系列文章的总结和之后系列文章写作计划的一些展望. 数据的权衡 正所谓鱼和熊掌不能兼得,舍了才能得.架构或技术设计方案中针对数据这个事情,有太多体现了权衡思想的地方. 空间和时间 我们来想想有哪些广义上空间换时间(性能)的例子,也就是通过使用更多的存储或内存空间加快了任务的单次执行速度或总体吞吐量: 让数据…
重构,于我而言,很大的快乐在于能够解决问题. 第一次重构是重构一个c#版本的彩票算奖系统.当时的算奖系统在开奖后,算奖经常超时,导致用户经常投诉.接到重构的任务,既兴奋又紧张,花了两天时间,除了吃饭睡觉,都在撸代码.重构效果也很明显,算奖耗时从原来的1个小时减少到10分钟. 去年,我以架构师的身份参与了家校朋友圈应用的重构.应用麻雀虽小,五脏俱全,和诸君分享架构设计的思路. 01 应用背景 1. 应用介绍 移动互联网时代,Feed流产品是非常常见的,比如我们每天都会用到的朋友圈,微博,就是一种非…
「从小白到架构师」系列努力以浅显易懂.图文并茂的方式向各位读者朋友介绍 WEB 服务端从单体架构到今天的大型分布式系统.微服务架构的演进历程.读了三篇万字长文之后各位想必已经累了(主要是我写累了), 今天我们回来看看小明和他的「淘金网」的故事. 「淘金网」里有一个页面叫「关注页」,关注页的逻辑十分常见就是将用户关注的创作者发表的文章聚合在一起,按时间倒序排列即可. 这种产品形态在业内一般被叫做 Feed 流,Feed 流产品在我们手机APP中几乎无处不在,比如微信朋友圈.新浪微博.今日头条等.只…
二.Work Queues(using the Java Client) 走起   在第上一个教程中我们写程序从一个命名队列发送和接收消息.在这一次我们将创建一个工作队列,将用于分发耗时的任务在多个工作者(worker)之间. 背后的主要思想工作队列(又名:任务队列)是为了避免立即做一个资源密集型任务,不得不等待它完成.相反,我们安排的任务要做.我们封装任务作为消息并将其发送到一个队列.工作进程在后台运行将流行的任务和最终执行的工作.当您运行许多worker的任务将在他们之间共享.这个概念是特别…
柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重新回到经典“Hello world!”(The simplest thing that does something )时代,RabbitMQ 支持N多种客户端(client),这里无法一一讲解,暂定java client,有时间的情况下,在弥补一下. 事先,先普及一下图标(我们会在下面的事例中,会…
柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装.配置与监控 一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMware® Workstation 10.0.1 build Linux系统:CentOS6.5 rabbitMQ官网下载:http://www.rabbitmq.com/download.html Erlang的官网下载: http://www.erlang.org/download.html 2)…
一.MQ(Message Queue) 即 消息队列,一般用于应用系统解耦.消息异步分发,能够提高系统吞吐量.MQ的产品有很多,有开源的,也有闭源,比如ZeroMQ.RabbitMQ. ActiveMQ.Kafka/Jafka.Kestrel.Beanstalkd.HornetQ.Apache Qpid.Sparrow.Starling.Amazon SQS.MSMQ等,甚至Redis也可以用来构造消息队列.至于如何取舍,取决于你的需求. 由于工作需要和兴趣爱好,曾经写过关于RabbitMQ的系…