创建主动-主动地理复制数据库

如何创建 Active-Active 数据库以及设置时需要考虑的事项。

主动-主动地理复制数据库(以前称为 CRDB)让应用程序能够对不同地理位置的数据集副本进行写访问。

托管实例的参与 Redis Enterprise Software 集群可以分布在不同的地理位置。Active-Active 数据库的每个实例都可以接收写入操作,并且所有操作都会同步到所有实例而不会发生冲突。

创建主动-主动数据库的步骤

  1. 创建服务帐户- 在每个参与集群上,创建具有管理员角色的专用用户帐户。
  2. 确认连接- 确认参与集群之间的网络连接。
  3. 创建 Active-Active 数据库- 连接到您的一个集群并创建一个新的 Active-Active 数据库。
  4. 添加参与集群- 使用服务帐户的用户凭据将参与集群添加到 Active-Active 数据库。
  5. 验证创建- 登录到每个参与集群并验证是否在其上创建了 Active-Active 数据库。
  6. 确认主动-主动数据库同步- 测试写入一个集群并从另一个集群读取。

先决条件

  • 两台或多台安装了相同版本 Redis Enterprise Software 的计算机
  • 所有参与集群之间的网络连接和集群 FQDN 名称解析
  •  所有集群中的每个节点上均已配置并运行网络时间服务监听器 (ntpd)

创建主动-主动数据库

  1. 在每个参与集群上创建服务账户:

    1. 在浏览器中,打开参与集群的集群管理器 UI。

      默认地址是:https://<RS_address>:8443

    2. 转至访问控制 > 用户选项卡:

      添加角色及名称
    3. 单击+ 添加用户

    4. 输入用户的用户名、电子邮件和密码。

    5. 选择管理员角色。

    6. 单击“保存”

  2. telnet要验证参与集群之间的网络连接,请从每个参与集群向所有其他参与集群运行以下命令:

    telnet <target FQDN> 9443
    
  3. 在浏览器中,打开要创建 Active-Active 数据库的集群的集群管理器 UI。

    默认地址是:https://<RS_address>:8443

  4. 使用以下方法之一打开创建数据库菜单:

    • 单击导航菜单中数据库旁边的+按钮:

      创建数据库菜单有两个选项:单区域和主动-主动数据库。
    • 转到数据库屏幕并选择创建数据库

      创建数据库菜单有两个选项:单区域和主动-主动数据库。
  5. 选择Active-Active 数据库

  6. 输入集群的本地管理员凭据,然后单击“保存”

    输入集群的管理员用户名和密码。
  7. 添加将托管 Active-Active 数据库实例的参与集群:

    1. 参与集群部分,转到其他参与集群并单击+ 添加集群

    2. 添加集群配置面板中,输入新集群的 URL、端口号以及新参与集群的管理员用户名和密码:

      添加集群面板。
      笔记:
      您不能将仅 RAM 集群和启用闪存的集群添加到同一个 Active-Active 配置中。
    3. 单击加入集群将该集群添加到参与集群列表中。

  8. 输入数据库名称

  9. 如果您的集群支持自动分层,您可以在“运行于”中选择“闪存”,以便您的数据库使用闪存。我们建议您每 1 秒使用一次 AOF,以便在新的副本的初始主动-主动数据库同步期间获得最佳性能。

  10. 要配置其他数据库设置,请展开每个相关部分进行更改。

    有关每个设置的更多信息,请参阅配置设置。

  11. 单击“创建”

配置设置

  • 数据库版本- 数据库使用的 Redis 版本。

  • 数据库名称- 数据库名称要求如下:

    • 最多 63 个字符

    • 只有字母、数字或连字符 (-) 才是有效字符

    • 必须以字母或数字开头和结尾

    • 区分大小写

  • 端口- 您可以定义客户端用于连接数据库的端口号。否则,将随机选择一个端口。

    笔记:
    数据库创建后, 您不能更改端口号。
  • 内存限制-数据库内存限制包括所有数据库副本和分片,包括数据库复制中的副本分片和数据库集群中的数据库分片。

    如果集群中数据库的总大小达到内存限制,则会强制执行数据库的数据驱逐策略。

    笔记:
    如果您创建启用了自动分层的数据库,您还需要为该数据库设置 RAM 与闪存的比率。最低 RAM 为 10%。最高 RAM 为 50%。
  • 功能(以前称为模块)- 创建新的内存数据库时,您可以在数据库中启用多个 Redis Stack 功能。对于自动分层数据库,您可以启用支持自动分层的功能。有关兼容性详细信息,请参阅Redis Enterprise 和 Redis Stack 功能兼容性

    笔记:
    要使用 Redis Stack 功能,请在创建新数据库时启用它们。创建数据库后无法启用它们。

    要向数据库添加功能:

    1. “功能”部分中,选择一个或多个功能。

    2. 要自定义功能,请选择参数并输入可选的自定义配置。

    3. 选择完成

TLS

如果在创建 Active-Active 数据库时启用 TLS,则节点将使用 TLS 模式“仅需要 CRDB 通信的 TLS”来要求参与集群之间的通信进行 TLS 身份验证和加密。

创建 Active-Active 数据库后,您可以将 TLS 模式设置为要求所有通信都使用 TLS,以便应用程序的客户端通信也经过身份验证和加密。

高可用性和耐用性

  • 复制- 我们建议所有 Active-Active 数据库使用复制以获得最佳的集群间同步性能。

    启用复制后,每个 Active-Active 数据库主分片都会复制到相应的副本分片。然后使用副本分片在实例之间同步数据,主分片专用于处理客户端请求。

    我们还建议您启用副本 HA,以确保副本分片对于此同步具有高可用性。

  • 数据持久性- 为了防止 RAM 中存储的数据丢失,您可以启用数据持久性以在磁盘上存储数据的副本。

    Active-Active 数据库仅支持仅追加文件 (AOF) 持久性。Active-Active 数据库不支持快照持久性。

  • 驱逐策略- Active-Active 数据库的默认驱逐策略是noeviction。Redis Enterprise 版本 6.0.20 及更高版本支持 Active-Active 数据库的所有驱逐策略,除非启用了自动分层。

聚类

  • 数据库集群选项中,您可以:

    • 确保已启用数据库集群,并选择数据库中想要的分片数量。启用数据库集群后,数据库将受到多键命令的限制。您可以随时增加数据库中的分片数量。

    • 清除数据库集群选项以仅使用一个分片,这样您就可以 不受限制地使用多键命令。

    笔记:
    创建 Active-Active 数据库后,您无法启用或关闭数据库集群。
  • OSS 集群 API -

    OSS Cluster API 以近乎线性的可扩展性减少访问时间和延迟。OSS Cluster API 为 Redis 客户端提供了一种了解集群拓扑的简单机制。

    客户端必须首先连接到主节点以获取集群拓扑,然后直接连接到托管主分片的每个节点上的 Redis 代理。

    笔记:
    您必须使用支持集群 API 的客户端来连接已启用集群 API 的数据库。

访问控制

  • 未经身份验证的访问- 您可以以默认用户身份访问数据库,而无需提供凭据。

  • 仅密码身份验证——当您为数据库的默认用户配置密码时,所有与数据库的连接都必须使用 [AUTH 命令](/docs/latest/commands/auth/) 进行身份验证。

    如果还配置了访问控制列表,则连接可以指定其他用户进行身份验证,并根据为该用户指定的 Redis ACL 允许请求。

    创建不带 ACL 的数据库可使默认用户拥有对数据库的完全访问权限。您可以通过要求输入密码来保护默认用户的访问权限。

  • 访问控制列表- 您可以指定有权访问数据库的用户角色以及适用于这些连接的Redis ACL 。

    只能在创建 Active-Active 数据库后配置访问控制。在每个参与集群中,在创建数据库后添加 ACL。

    要定义数据库的访问控制列表:

    1. 安全 > 访问控制 > 访问控制列表中,选择+ 添加 ACL

    2. 选择一个角色来授予数据库访问权限。

    3. 将Redis ACL与角色和数据库关联。

    4. 选择复选标记以添加 ACL。

因果一致性

Active-Active 数据库中的因果一致性保证在 Active-Active 数据库的所有实例中保持对特定键的操作顺序。

要为现有的 Active-Active 数据库启用因果一致性,请使用 REST API。

测试主动-主动数据库连接

创建 Redis 数据库后,您就可以连接到数据库了。请参阅连接到 Active-Active 数据库,获取多种连接方法的教程和示例。

给此页面评分
返回顶部 ↑