Amazon web services AWS读取副本体系结构
我们有一项在6个AWS地区运行的服务,我们有一些必须满足的条件:Amazon web services AWS读取副本体系结构,amazon-web-services,amazon-rds,Amazon Web Services,Amazon Rds,我们有一项在6个AWS地区运行的服务,我们有一些必须满足的条件: 查询数据库的延迟必须非常低 它支持高吞吐量的查询 据观察,数据库更新过程是IO密集型的,因此由于db锁,它会增加查询延迟 更新和读取之间可以接受秒级的延迟 我们讨论的体系结构有一个服务更新主数据库,每个区域有一个从数据库(总共6个从数据库) 我们发现了一些问题和一些可能的解决方案: 使用AWS基础架构的读取副本数量限制为5个 为了解决这个问题,我们需要创建读取副本的读取副本。这应该给我们25个例子 AWS中存在一个限制,即您无
- 查询数据库的延迟必须非常低
- 它支持高吞吐量的查询
- 据观察,数据库更新过程是IO密集型的,因此由于db锁,它会增加查询延迟
- 更新和读取之间可以接受秒级的延迟
我们正在使用MySQL,但我们对使用其他兼容的DBs非常开放。不幸的是,在跨区域方面没有神奇的解决方案:您会失去延迟 我认为您几乎从RDS的角度探索了所有的解决方案,例如读取副本的读取副本(我确认您无法从其他区域执行此操作,但这是为了避免副本延迟过大) 另一个解决方案是在EC2实例上创建数据库,但您将失去RDS的所有好处(您可以使用VPC之间的跨区域vpn来保护此流量)。请记住,过多的读取副本会影响性能 我对你的建议是:
- 在所有可能的级别大量使用缓存:数据库和服务器之间的弹性缓存、http页面的清漆、内容交付的cloudfront。如果您需要如此多的读取副本,这意味着您严重依赖于读取。通过这种方式,您可以节省大量的读取数据,从而显著增加延迟,那么5个读取副本就足够了李>
- 考虑分割或使用多个数据库。这 然而,这并不总是一个好的解决方案,这取决于您的用例
Hal1用于缓存;我在redis中使用了弹性缓存,使用方便,性能极佳