让我们举一个Twitter的例子。有一个巨大的缓存,经常更新。例如:如果有人Foo推文,它在全球各地都有粉丝。理想情况下,所有PoP中的所有缓存都需要更新。即他们应保持同步
跨数据中心(PoP)的复制如何适用于实时缓存? 有哪些工具/技术? 这个系统设计中有哪些潜在的问题?
答案 0 :(得分:1)
我不确定对此有正确/错误的答案,但这是我的两便士的价值。
我会从一个稍微不同的角度解决问题:当用户发布某些内容时,某些东西会进入分布式存储(不一定是缓存),而这些存储在多个地理位置已经是多余的。我还假设,为了性能,这些节点最终是一致的。
现在缓存了。我不会设计一个系统来处理每次有人做某事时所有缓存的同步。我宁愿在服务级别实现缓存。想象一下,驻留在地理位置分散的群集中的小型服务。每次用户尝试获取数据时,服务都会检查其本地缓存 - 如果是未命中,它会从存储中读取推文并将其中的一部分放入缓存中(受驱逐策略限制)。所有后续访问(如果有)都将缓存在本地级别。
在设计预防措施方面:
我肯定在这里遗漏了很多其他的东西,但希望这是一个很好的思考。