我们必须在6个AWS地区运行的服务,我们有一些前提条件应满足:AWS读副本架构
- 查询数据库必须很低
- 它支持潜伏期查询的吞吐量很高
- 据观察,数据库更新过程是IO密集型的,所以它增加了由于数据库锁定导致的查询延迟。
- 时滞在秒的量级是更新之间可接受的,并且读
,我们讨论了具有一个服务,更新每个区域中的主DB和一个从(6个从站总数)的体系结构。
我们发现有一些问题和一些可能的解决方案:
- 没有使用AWS基础设施5个读取副本的限制。
为了解决这个问题,我们虽然创建了只读副本的只读副本。这应该给我们25个实例。
- AWS中存在限制,您无法从其他区域创建只读副本的只读副本。
为了解决这个问题,我们尽管在应用程序内部更新了2个主数据库。
- 此方法会产生一个问题,即一段时间内数据库可能不一致。
在服务实现中,我们总是可以重新创建数据。因此,有一项工作需要重新更新数据(这是更新IO密集型的原因之一)。
任何人都有类似的问题?你如何处理它?我们可以避免自己创建和维护数据库吗?
我们正在使用MySQL,但我们非常乐意使用其他兼容的数据库。
1用于缓存;我使用redis的弹性缓存,易于使用且性能卓越 –