10年专注工程机械产品质量有保 售后7×24小时服务
24小时咨询热线:4006666666
联系我们
工程机械设备有限公司
全国免费服务热线:4006666666
地址 :中国·北京
联系人:陈经理
您的位置: 首页>>热门话题>>正文
热门话题

小明和他的“淘金网

时间:2023-03-15 作者:admin666ss 点击:66次

《从小白到架构师》系列试图以通俗易懂图文并茂的方式向读者朋友们介绍WEB server从单一架构到今天的大型分布式系统微服务架构的演变。看了三篇长文,你一定累了。今天,我们再来看看小明和他的“淘金网”的故事。

正是这样一个流媒体系统使得“陶金”的工程师们。com”分成两组一直吵到小明的办公室,

在做出最终决定之前,让我们比较一下推拉模式:

读取操作速度很快

逻辑复杂性

消耗大量存储空间

粉丝多的时候,就灾难了

简单的逻辑

节省存储空间

虽然拉模式乍一看有很多优点,但是Feed流是一个极其不平衡的读写场景,读请求数比写请求数高两个数量级的情况并不少见,这使得拉模式消耗的CPU等资源更高。

此外,push可以做得很慢,但用户很难容忍在打开页面时等待很长时间才能看到内容,因此pull模式的应用因其阅读效率较低而受到很大限制。

小明和他的“淘金网 热门话题

没必要仔细考虑。我们知道粉丝群的活跃用户是有限的,所以只能推给活跃粉丝,不能推新文章给那些几个月没启动App的用户。

进行计算,

鲁迅先生有句话说得好,3354,“有事,不能决定去雷迪斯。”因为它是一个缓存,所以Redis就派上了用场。

这种重复操作不影响结果。有个高大上的名字————幂等元。

需要在缓存中放置一个标志,以防止缓存崩溃。

缓存不足是计算机领域的经典问题。问你的CPU,它会告诉你答案。——如果一级缓存不够,做二级缓存。我只会在L1L2和L3都用完的时候使用内存。

这里有一个提醒:对于每一个额外的缓存层,应该考虑多一层一致性。是否做多级缓存需要仔细权衡。

提要是一个动态列表,列表的内容会随着时间而变化。传统的极限和偏移寻呼机会有一些问题:

这个问题的解决方案是根据上一页最后一个提要的ID拉下一页:

用Feed ID分页需要先根据ID找到Feed,然后根据Feed的发布时间读取下一页。过程比较麻烦,如果删除作为分页光标的Feed就更麻烦了。

我更喜欢使用时间戳作为光标:

使用时间戳必然会出现两个Feed时间戳相同的问题,让我们的寻呼机无所适从。

虽然我们已经将推送提要的任务转移给了MQ Worker,但是单个Worker仍然难以处理将提要推送给数百万粉丝的庞大任务,而且一旦进程中途崩溃,就需要从头再来。

我们可以将一个大的推送任务分割成多个子任务,并通过消息队列将它们发送给多个MQ Worker进行处理。

发表评论