【问题标题】:database replication lag (latency) with master-write and slave-reads主写和从读的数据库复制滞后(延迟)
【发布时间】:2012-05-31 17:26:25
【问题描述】:
我们有一个读写主服务器和复制的从读服务器。在某些 Web 用例中,数据会被发布并立即读取以发送回服务器。立即读取是在读取从属设备上完成的,并且由于延迟,数据还没有在那里更新。
我知道这可能是复制设置的常见问题,我们是新手,非常感谢任何关于我们必须克服这种情况的选项的意见。
我现在能想到几个选项:
- 始终立即从主设备读取数据。
- 使用强大的服务器减少延迟。
- 取消复制并对数据库进行分片。
谢谢,
克里斯。
【问题讨论】:
标签:
database
database-design
replication
scalability
【解决方案1】:
此类架构的常见解决方案是使用内存数据网格 (IMDG)。
IMDG(在某些情况下称为分布式缓存)可以帮助您在不同服务器之间进行同步,而无需支付数据库访问延迟或处理开发自己的复制机制。
XAP Elastic Caching(参见http://www.gigaspaces.com/datagrid)是该领域的领先产品之一,甚至还有免费的社区版,可用于商业项目。
【解决方案2】:
这取决于您使用的数据库,以及您希望解决此问题的级别。
在数据库层面,有几个关键词可以尝试研究:
在 MySQL 中,你可以找到:
- MySQL 5.6(尚未正式发布)
- Galera 集群
如果您想在应用程序级别解决此问题,那么“写入后始终读取主控”将是一个很好的解决方案。