2

我正在 Node/Mongo/Redis 堆栈上启动一项全球服务。我有一个关于我的 Redis/Twemproxy 配置的架构问题。这是问题的症结所在:我所有的数据都是“全球性的”——也就是说,来自世界各地的用户需要访问相同的数据。不幸的是,跨越海洋的时间约为 300 毫秒 - 因此,为了避免读取速度缓慢,我需要在用户“本地”的服务器上托管我所有数据的副本。

使用 MongoDB 很容易做到这一点。您只需创建一个具有全球成员的副本集,并将 readPreference 设置为“最近”(最小滞后)。完毕。

然而,使用 Redis/Twemproxy,这并不容易......

我当前的解决方案是通过写入每个全局服务器(在 req/res 周期内)来严重影响写入性能。这确实会带来更快的读取速度,因为我可以让每个用户从本地数据集中读取。如果你反过来做,写“本地”,读“全局”——你节省了一大堆空间(你只有一个数据副本),但读取会对性能造成巨大影响。如果必须选择,我需要更快的阅读速度。

我尝试创建一个“主”集群(AMER),然后将其他“全球”集群(亚洲、欧洲)从属于该集群,但是当我尝试从“全球”集群中读取数据时,它什么也没返回。这适用于单个 Redis 实例,因此,我假设这与添加 Twemproxy 和键映射有关。

有没有人有任何建议或想法?配置全局 Redis/Twemprox 架构的最佳方式是什么?

4

0 回答 0