Menu Close

9.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,分片涉及基于密钥分割数据。您需要给定特定密钥的代理组件知道要查找的分片,如 twemproxytwemproxy 也称为 nutcracker,它是一个适用于 Redis 协议的轻量级代理解决方案,它根据特定的密钥或服务器映射找到分配给它们的分片。使用 twemproxy 在 Amazon ElastiCache 或 Standard Redis 实例中添加分片功能具有以下优点:

  • 在多个服务器间自动分片数据的功能。
  • 支持多种哈希模式,支持一致的散列和发行版。
  • 在多个实例中运行的能力,允许客户端连接到第一个可用的代理服务器。
  • 减少与后端上缓存名称服务器的连接数量。
注意

redis Enterprise 使用自己的代理,因此不需要 twemproxy

其它资源