V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yangxin0  ›  全部回复第 52 页 / 共 68 页
回复总数  1342
1 ... 48  49  50  51  52  53  54  55  56  57 ... 68  
2015-05-15 17:33:00 +08:00
回复了 zaishanfeng 创建的主题 程序员 对于国人的开源项目,你敢用吗?
不是久经考验的库你敢不看代码直接撸?
2015-05-14 21:12:02 +08:00
回复了 alexapollo 创建的主题 Python 你心目中 python 最好的 IDE 是什么?
Emacs
创业公司搞成网吧了
欢迎使用 magit, It's free.
2015-04-13 16:11:52 +08:00
回复了 solasy 创建的主题 PHP 找熟悉 laravel 框架的北京兼职伙伴
选自己最熟悉的框架而不是最适合的, 等项目盈利了至少再找人选择最适合的。
2015-03-15 16:55:59 +08:00
回复了 ccc1924 创建的主题 NGINX NGINX 编译安装出错,如何解决
用老版本的pcre, 目前nginx不支持pcre 10
2015-03-13 11:21:56 +08:00
回复了 veapon 创建的主题 随想 各位猿类对 6 天工作制怎么看
太累了
2015-03-13 10:13:20 +08:00
回复了 moxuanyuan 创建的主题 宽带症候群 用长城宽带,有些国内网站打不开!
@jacy no no no , 远没得你们想象中的简单, 应为长城宽带使用了部分非法带宽, 内部走的VPN到另一个城市落地, 所有在流量出口是有流量识别的,然后不同的走不同的线路。
2015-03-12 20:20:14 +08:00
回复了 moxuanyuan 创建的主题 宽带症候群 用长城宽带,有些国内网站打不开!
很简单, 他们对你的HTTP流量进行了监控,有些网站让他们屏蔽了。 验证这个问题很简单,你挂一个ss全局代理, 马上就能上去了.
外包的中间商
2015-03-07 11:55:37 +08:00
回复了 memorybox 创建的主题 分享创造 我的第一个 Android APP:智取华容道
这个也只能叫游戏软件而不是游戏
[这是我尝试解答Fenng提出问题二, 欢迎拍砖]

尝试回答一下第二问题:
这个问题其实可以拆成三个, 1、朋友圈的feeds是如何存的, 2、朋友圈的权鉴是如何做的
3、timeline怎么做的(结合1、2)

1、feeds的话我猜测和空间feeds类似在内存数据库里面存放了最近的10条feeds, 其余的全部存在内存里面。虽然目前微信这个小儿子很受老爹重视也不至于把全部内容都扔到内存里面存放。
具体是怎么存放又要分成两种情况 A、腾讯内部实现, B、外部实现

A、我猜测应该是挂在了某个”uin“下面,并且根据这个“uin”进行了分库,当然这个分库和平时数据库的还不太一样,这个分库尺度更加大一些, 这些库分布在多地, “uin”有一定的区域特征。 腾讯里面有一个组件叫做Tmem, 这个组件是改至memcache, 它比memcache好的地方就是可以做到平滑扩容并且实现了分布式, 所以某个地区应该有一个非常庞大的分布式内存系统。

B、外部的人员就有点蛋疼了,没得Tmem这么好的东西,如何设计一个分布式集群并且能够实现自动化扩容。 既然我们是外部人员,我们就可以预先假设uin是64位整数, 我们提前预估好单台机器的储存, 比如说我们单台机器64G,那么memcache可以用内存保持在60%比较合适,也就是说memcache的内存分配最好在64G*60%=38G左右, 假设单挑feeds是1k, 那么10挑feeds就是10K数据, 38G/10k = 400W用户 这样我们大致可以按照uin/400W用户来进行分库,不过最好的数值还是业务上线后观察数据,然后进行调整。

2、权鉴系统分成两种 A、我不看别人的朋友圈 B、别人不让我看她的朋友圈
A、我自己保存一个不看的uin列表、当数据从服务器拉下来以后客户端过滤掉即可
B、我自己保存一个别人不让我看的uin列表,拉完热点用户数据以后把相应的数据在服务器端过滤掉

3、timeline模块要做到 A、小红点(好友有新feeds) B、拉去到好友的最新数据 C、不能重复拉取好友最新的消息
A、这个应该是一个bitmap服务, 每当一个用户发了feeds以后,就就把他的好友列表发送到这个服务,然后这个服务置位, 手机客户端定期刷新或者在某些时机刷新(比如从锁机界面到微信界面),确定是否点亮小红点。写bitmap之前这个服务应该会做去重的工作来避免大量的写bitmap。
去重工作主要是堆机器和hash的利用没有什么难点。(把好友的uin位置位,通知好友有小红点)

B、这也应该是一个bitmap服务, 当用户发送了消息以后, 把这个用户的标志位位置(把自己uin置位)优化点1、这个可能对于热衷于刷朋友圈的用户会做缓存 2、对于好友数多得用户做缓存 来避免大量的访问bitmap, 这里还需要额外的存储记录还有多少好友需要更新朋友圈,以及feeds的seq

C、每个用户的feeds都有一个序列号(seq)微信初始化的时候每个好友的seq都为0,随着不断获取信息这个序列号逐渐变大,这也方式重复拉去或者显示feeds。 (从微信重新安装以后要拉去很多数据就可以能验证出来)
1 ... 48  49  50  51  52  53  54  55  56  57 ... 68  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1076 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 19:09 · PVG 03:09 · LAX 12:09 · JFK 15:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.