我一直在这里阅读很多帖子并在网上浏览,但也许我没有问正确的问题.我知道Redis目前是Master/slave,直到Cluster可用.但是,我想知道是否有人可以告诉我如何在逻辑上配置Redis以满足我的需求(或者如果它不是正确的工具).
之情况:
我们在美国的两端有2个站点.我们希望客户能够以高容量在每个站点上书写.然后,我们希望每个客户端也能够在其站点上执行读取操作.但是我们希望数据能够在姊妹站点的写入时间<50ms.鉴于我们有足够的带宽.有没有办法配置redis来满足我们的需求?我们的写入最大大小通常会小于5k.重点是即使默认情况下不支持,我如何才能拥有彼此同步的2个主服务器.
The*_*ill 11
Tom的回答是你没有运行任何类型的集群,你只是写两个服务器.如果要确保它们之间的一致性,这是一个问题.考虑当客户端写入远程服务器失败时会发生什么.你是否撤消了对本地的写入?当您无法写入远程服务器时,应用程序会发生什么?当你无法从当地读书时会发生什么?
第二个问题是约书亚提出的基本物理问题.对于往返,你说的理论最小值为38毫秒,在两端(三个系统)的理论最大处理时间为12毫秒.我要说的是期望有点太多,带宽与延迟无关.你可以有一个10GB的管道,这些时间仍然存在.也就是说,在12ms内在整个大陆上转移5k也是一个问题.你确定你有连接能力在50ms内传输5k数据,更不用说12吗?我一直在非洲大陆的私人无用电路上看到ping时间超过50ms - 并且ping不传输5k数据.
你将如何保持两个不相关的服务器同步?如果您真的需要整个非洲大陆的低于50毫秒的延迟,上述理论上的最佳情况意味着您有12毫秒的时间来运行同步算法.即使一个查询检查另一台服务器上的数据也意味着您在50ms窗口之外.如果数据不同步,您将如何解决?鉴于上述时间,我不知道如何在50ms内同步.
我建议重新审视基本的设计要求.具体来说,为什么要这个?整个非洲大陆50ms往返的延迟要求通常是营销或缺乏对细节的关注的标志.我敢打赌,如果你分析这些要求,你会发现这个50毫秒的窗口过多且没必要.如果不是,并且数据同步实际上很重要(可能),那么有人需要确定编写同步代码的重要额外工作是否值得,甚至可能保持在50ms窗口内.跨大陆低于50毫秒的延迟数据同步不是一个简单的问题.
如果您不需要同步,为什么不简单地运行一个服务器?您可以在非洲大陆的另一侧使用奴隶用于仅恢复目的.当然,这仍然意味着最好的情况是你有12毫秒的时间来获取数据并返回.我不会指望整个大陆的50ms往返操作+延迟+ 5k/10k数据传输.
归档时间: |
|
查看次数: |
10508 次 |
最近记录: |