4.3. 重新删除数据库分片和复制
分片有时称为分区,可将大型数据库隔离为称为分片的较小数据库。通过复制,您的数据库使用托管在独立计算机上的同一数据集的副本进行设置。
分片
分片有助于添加更多领导实例,当您有如此多的数据并不适用于单个数据库中,或者 CPU 负载接近 100% 时,这也会很有用。
使用 Red Hat is HA for 3scale 时,以下两个原因是分片非常重要的原因:
- 拆分和扩展大量数据,并调整特定索引的分片数量,以帮助避免瓶颈。
- 跨不同节点分布操作,因此可以提高性能,例如当多台机器处理同一个查询时。
禁用集群模式的 Redis 数据库分片的三个主要解决方案是:
- Amazon ElastiCache
- 通过 Redis 发送的标准 Redis
- redis Enterprise
复制
redis 数据库复制通过在不同机器之间复制您的数据集来确保冗余性。通过利用复制功能,您可以在领导机停机时让 Redis 保持工作。然后,从单个实例(领导)中拉取数据,以确保高可用性。
通过适用于 3scale 的 HA,数据库复制可确保主分片的高可用性副本。操作原则包括:
- 当主分片失败时,副本分片将自动提升到新的主分片。
- 恢复原始主分片后,它会自动成为新主分片的副本分片。
Redis 数据库复制的三个主要解决方案是:
- redis Enterprise
- Amazon ElastiCache
- 通过 Redis 发送的标准 Redis
使用 twemproxy
进行分片
对于 Amazon ElastiCache 和 Standard Redis,分片涉及基于密钥分割数据。您需要给定特定密钥的代理组件知道要查找的分片,如 twemproxy
。twemproxy
也称为 nutcracker,它是一个适用于 Redis 协议的轻量级代理解决方案,它根据特定的密钥或服务器映射找到分配给它们的分片。使用 twemproxy
在 Amazon ElastiCache 或 Standard Redis 实例中添加分片功能具有以下优点:
- 在多个服务器间自动分片数据的功能。
- 支持多种哈希模式,支持一致的散列和发行版。
- 在多个实例中运行的能力,允许客户端连接到第一个可用的代理服务器。
- 减少与后端上缓存名称服务器的连接数量。
redis Enterprise 使用自己的代理,因此不需要 twemproxy
。
其他资源