微信朋友圈设计原理

转自:http://www.woshipm.com/pd/2701264.html

当你一秒钟拍了张自拍,一个小时修了下图,然后打开朋友圈,点击发送的那一刻,后台到底有多少工作在进行着?

我们太习以为常,没有意识到这背后还会有多复杂的逻辑。为什么每天几十亿量级的朋友圈发布量,都没有让微信崩溃过?

我看了朋友圈负责人陈明的演讲,他分享了微信的架构,数据结构设计等。演讲很好看,很实在,但有的时候程序员讲话需要努力下才能理解,本文我将从一个产品的角度,尽量平民化的阐述整个逻辑,写下的自己的思考和理解,希望大家可以有所收获。

一、发朋友圈

1. CDN

当我们把精心修好的图,朋友圈点击发送。是不是有一种秒发零延迟的感觉?

那是因为,我们在发朋友圈时,第一步动作是把你发布的图片传到腾讯就近的CDN节点,这时是不经过微信后台服务器的,所以会很快很快。

(CDN这里就不展开了,可以想象下淘宝的菜鸟仓配网络一样,先把货发到仓配点,然后再配送给你。)

2. 发布表

当图片成功传到CDN后,这时微信客户端才会通知朋友圈CDN,说这里有个人发了个自拍耶。

你发朋友圈时,很可能会屏蔽掉你EX或领导老板之类的对吧。

所以呢,微信朋友圈的后台会把你发的图片、这个图片的URL地址、然后谁能看到这图片(很关键)等等信息写到发布表里。

3. 相册表

当发布表写完后,会把你这自拍索引到你的相册表里,相册表实际上很小,因为它就存了个索引指针而已。

也就是说,当你打开自己的相册列表看到你过去发的成百上千的照片时,都是根据索引去发布表里取的数据。

4. 时间线

当相册表写好了,就会到一个很关键的步骤了,会触发一个批处理动作。

就是会有个跑腿的,跑过去通知你所有的通讯录好友,说你发了个自拍,然后就会把你发的这个自拍插入到你好友的时间线里。

当你好友刷新时,就会看到你的自拍了!Oh Yeah!

当然这前提是,你的好友没有删除你、拉黑你、屏蔽你、不看你。扎心,我们后面会讲这些过滤的权限问题是怎么处理的。

二、刷朋友圈

好了。假设小王是你的微信好友,工作了五分钟累的不行了,休息休息刷下朋友圈。

当小王点开朋友圈时,会拉他自己的时间线,这时他的时间线会得知有个你的新发布,小王的微信客户端会根据你的发布的元数据去CDN找这个图片的URL,拉到本地,然后小王就能看到你发的自拍了。

三、删除、拉黑、标签、不让他看、三天可见该怎么办

1. 谁可以看

当我们发朋友圈的时候,会有个谁可以看的选项,默认是公开,也就是你所有的好友(非删除、黑名单状态)都会看到。

除此,还有部分可见和不给谁看的选项,这里就是第一步的权限控制。

但这里控制的是,你发的这个照片,要加到哪些好友的时间线里;也就是说,假设你选择了不给“领导”标签下的人看,那领导标签下的所有人的时间线都不会加上你的这条新朋友圈。

2. 标签这里要多说一句

标签实际上是帮助你更方便选择可见好友范围的一个东西,只有这一个作用。

举个例子:比如说你发了自拍,选择“男神”标签发了出去,此时“男神”标签下有吴彦祖和古天乐两个人,那么吴彦祖和古天乐都能刷到你的自拍。

这时呢,你又把刘德华加到“男神”标签下,刘德华是不会刷到你发的这张自拍的!

同理,你渐渐厌倦了古天乐,把古天乐从“男神”标签里移了出去,古天乐依然可以看到你发的这个自拍哦。

明白了吧,你通过标签选择的可见范围,都是具体到标签下的人的。在你发布的那一瞬间,发布加到了谁的时间线里,就都定下来了。所以无论后面怎么调整标签下的人,都不会影响这条已经发出去的自拍了。

那你说,我就是不想让古天乐看我的这张自拍怎么办?好办,你可以选择删除他、拉黑他、不让他看、自拍设置成仅自己可见。

3. 这就是第二步的权限控制了

当小王刷朋友圈时,上面提到会更新他的时间线。

这个时候,小王的客户端还会做一个事情:就是查一遍权限。

也就是说,查一下时间线上的发布,有没有是属于不给小王看的。包括:删除、拉黑、不给他看、三天可见,这些都是可以随时变更设置的,因此小王每一次刷新朋友圈,时间线都会被筛选一下。

那就有宝宝说,会不会太麻烦了呀,每次都要查吗?

实际上不太麻烦。因为首先在你发布时,就确定了要加到哪些好友的时间线里,因此小王在刷朋友圈时,不用去每个好友的相册里去捞,这相册还有可能存在几百个不同的服务器里。而只需要读自己的时间线这一个动作就行了,这样的话效率就高上天了。

而删除、拉黑、不给他看、三天可见这些权限的设置,并不是说大家时时刻刻每天在改的东西,可能好久才改一次。

因此小王的微信客户端一般会把这些权限数据缓存下来,不需要每次都去拉这个数据,只有变动的时候才去变更一下。所以,怎么说呢,问题不大。

四、评论和赞

理解了上面讲的整个发布表、相册表、时间线这些东西后,评论和赞就相对好理解了。

微信后台会专门有张表存储评论和赞这些数据,假设三三是你和小王的共同好友,他刷朋友圈时,看到了你的这张自拍。那么会同时去评论表里拉这条发布的小王相关的评论和赞,放到这条朋友圈下面。

如果不是你和小王的共同好友,那就看不到这评论和赞。

以上,就是发朋友圈、刷朋友圈背后的一些东西。多去观察、思考下周围天天在用的东西,还是十分有意思的。

 

核心表

微信朋友圈的数据有四张核心的表:

  1. 发布表:发布表记录了来自所有用户的所有feed,比如一个用户发布了几张图片,每张图片的URL,图片在CDN里的URL,它有哪些元属性,谁可以看,谁不可以看等等。
  2. 相册表:相册是每个用户独立的,记录了该用户所发布的所有内容。
  3. 评论表: 评论就是针对某个具体发布的朋友评论和点赞操作。
  4. 时间线:所谓“刷朋友圈”,就是刷时间线,就是一个用户所有的朋友的发布内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/63136.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘分析:朋友圈集赞引流套路,老用户是如何带来裂变效果?

微信总裁张小龙在"2021年微信公开课PRO"演讲中表示:每天都有10.9亿用户打开微信。3.3亿用户进行视频通话,7.8亿用户进入朋友圈,1.2亿用户发表朋友圈。微信的用户如此庞大,朋友圈又是最大的流量洼池,企业商家…

仿微信朋友圈项目梳理

项目功能简介: 用户通过手机号验证码进行登录和注册 可以浏览动态列表中的所有动态 登录成功后用户可以发表自己的动态 也可以对自己认可欣赏的动态进行点赞和评论 也可以通过动态结识志同道合的朋友 进行聊天和探讨 前端:采用Vue框架搭建 weui进行页面…

如何实现朋友圈快速裂变 ?

相信大家都有过帮朋友砍一刀的经验,无论是实物商品、还是火车票、好友助力,都可以通过砍价来实现裂变传播,那么对于商家来说,怎样才能用好砍价这个功能呢?不妨一起来了解下砍价营销玩法吧! 什么是砍价? …

一场分销裂变活动,不止是发发朋友圈这么简单

现在,无论是大平台,还是小公司,都在做分销裂变,很多商家通过分销活动,收获了流量红利,实现了获客、裂变、复购。但也有很大一部分商家,尽管也在做分销,但却没有在分销活动中取得预期…

2021超级热门引流红包裂变微信分享朋友圈广告游戏源码

维信超级引流红包裂变游戏源码 维信超级引流红包裂变游戏源码,H5 拆红包源码 强制分享朋友圈,可以强制分享两次朋友圈、三个群,分享成功后自动跳转到你的广告页面,访客点击返回跳转广告页面,可以强制分享两次朋友圈&a…

朋友圈裂变营销活动怎么做?有什么玩法?裂变海报?积分

要问目前**运营圈里最火爆的涨粉途径是什么,【裂变海报】绝对当属第一。**甚至可以说是运营人必备的涨粉必杀技。 如果你对裂变海报的功能还不太清楚,接下来的内容就一定不要错过了,小金会从功能介绍到需要用到的工具,给大家进行详…

微信营销七(微信朋友圈发文技巧)

我们的发文可以是软文,也可以是硬广。但是不管怎么说,我们在发文的时候要注意一些问题。1. 要注意软度 什么是软度?那就是你的文章,或者是广告,不能太生硬了。我们在发文的时候尽量发一些软文,比如说我们有…

6个顶级动态数据可视化工具

作为一名数据分析师,一提到动态数据可视化就会感到莫名兴奋,我认为数据可视化有两个非常重要的部分:一个是动态,一个是数据可视化。要使数据分析真正有价值和有洞察力,就需要高质量的动态可视化工具。市场上有很多产品…

【1】数据可视化:基于 Echarts + Python 实现的动态实时大屏 - 互联网企业数据

目录 精彩案例汇总 效果展示 1、首先看动态效果图 2、再看实时分片数据图 一、 确定需求方案 1、确定产品上线部署的屏幕LED分辨率 2、功能模块 3、部署方式 二、整体架构设计 三、编码实现 (基于篇幅及可读性考虑,此处展示部分关键代码&…

【qstock量化】动态交互数据可视化

qstock简介 qstock由“Python金融量化”开发,试图打造成个人量化投研分析开源库,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(backtest)四个模块。其中数据模块(data&#xf…

新一代开源数据可视化开放平台,是如何做实时大屏/报表的?

先看两张简单配置的习作 datart 实时大屏——决策驾驶舱 datart——生产大屏 上面是在国产开源的数据可视化 datart 上简单配置的两个实时大屏,截图展现不出来交互的效果,下面传一段视频: 生产大屏页面 下面是安利时间 数据可视化 datart&a…

数据可视化:BI热力地图制作

热力图时以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。热力图可以显示不可点击区域发生的事情。 热力图可以直观清楚地看到页面上每一个区域的访客兴趣焦点,无须报告数据分析,图形化展现,无需任何页面分析经验。 上…

海量数据如何在Web端实现动态可视化?看看这家企业是怎么做的

“我们TestLogger公司是一家赛车行业的软件公司,主要是通过分析在赛道上多个传感器收集到的赛车数据,帮助提高赛车性能。TestLogger Analyzer就是其中的一款核心数据分析工具,在我们构建该工具的第一个产品原型时,就发现由于不同类…

动态数据可视化图表制作

动态数据可视化图表制作的5个基本流程:原始数据分析、确定所需图表类型、导入数据,进行初步优化、整体优化和检验成效这五个流程。 1.原始数据分析: 明确动态数据分析并清楚认识到数据的类型、与其他数据之间的关联、需要哪些数据元素、舍弃…

数据动态可视化

数据动态可视化 0 前言1 所需工具2 制作步骤 0 前言 最近做数据分析时,需要绘制一些动态变化图,想到之前见过网上有很多展示世界各国综合实力、GDP这样的视频,便想要找一找有没有相关资源,结果发现教程较少,因此将我的…

数据可视化_EChat

如何获取echart Apache ECharts 实例化1 主要核心文件是这三个 将这三个文件放入webstorm 的 js文件夹中 按照官网文档的实例创建一个html&#xff0c;将body 的内容全部替换 引入js文件 <!DOCTYPE html> <html lang"en"> <head><meta chars…

手把手教你做出数据可视化项目(七)可视化图表数据动态获取及界面跳转

数据可视化前言&#xff1a;https://blog.csdn.net/diviner_s/article/details/115933789 Apache Echarts简介&#xff1a;https://blog.csdn.net/diviner_s/article/details/115934089 项目最终效果图&#xff1a; 此篇博客为自己学习pink老师的课后完成的项目的总结与记录&a…

会展行业年度总结,鲸会务深入探索双线会议领域

2021的日历只剩单薄的几页&#xff0c;又到了盘点与回顾这一年的时间。因为众所周知的原因&#xff0c;整个会议会展行业都在震荡中发展&#xff0c;而防控政策也客观上加速了行业的数字化升级&#xff0c;双线会议会展甚至线上会议会展成为大势所趋。在此过程中&#xff0c;一…

ChatGPT有几个版本,哪个版本最强,如何选择适合自己的?

​ChatGPT就像内容生产界的瑞士军刀。它可以是数学导师、治疗师、职业顾问、编程助手&#xff0c;甚至是旅行指南。只要你知道如何让它做你想做的事&#xff0c;ChatGPT几乎可以提供你要的任何东西。 但重要的是&#xff0c;你知道哪个版本的ChatGPT最能满足你的需求吗&#x…

明朝第一才子杨慎十首诗词

杨慎(1488&#xff5e;1559)&#xff0c;公认为明朝三大才子之首。“相如赋&#xff0c;太白诗&#xff0c;东坡文&#xff0c;升庵科第。”前面的几个大家可能都猜得出来&#xff0c;司马相如的赋&#xff0c;李白的诗&#xff0c;苏东坡的文&#xff0c;而所谓的“升庵科第”…