创建一个Active-Active地理复制的数据库

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

Active-Active 地理复制数据库(以前称为 CRDBs)为应用程序提供了在不同地理位置的数据集副本的写访问权限。

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

创建Active-Active数据库的步骤

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

先决条件

  • 两台或更多安装了相同版本Redis Enterprise Software的机器
  • 所有参与集群之间的网络连接和集群FQDN名称解析
  • Network time service 监听器 (ntpd) 在所有集群的每个节点上配置并运行

创建一个Active-Active数据库

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

    1. 在浏览器中,打开参与集群的集群管理器用户界面。

      默认地址是:https://:8443

    2. 转到访问控制 > 用户标签页:

      Add role with name
    3. 点击+ 添加用户

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

    5. 选择管理员角色。

    6. 点击保存

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

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

    默认地址是:https://:8443

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

    • 点击导航菜单中Databases旁边的+按钮:

      Create database menu has two options: Single Region and Active-Active database.
    • 转到数据库屏幕并选择创建数据库

      Create database menu has two options: Single Region and Active-Active database.
  5. 选择Active-Active数据库

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

    Enter the cluster's admin username and password.
  7. 添加将托管Active-Active数据库实例的参与集群:

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

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

      Add cluster panel.
      注意:
      如果Active-Active数据库运行在闪存上,则无法添加仅运行在RAM上的参与集群。
    3. 点击加入集群将集群添加到参与集群列表中。

  8. 输入一个数据库名称

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

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

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

  11. 点击创建

配置设置

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

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

    • 最多63个字符

    • 仅允许字母、数字或连字符(-)作为有效字符

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

    • 区分大小写

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

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

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

    注意:
    如果您创建了一个启用了自动分层的数据库,您还需要为此数据库设置RAM与Flash的比例。最小RAM为10%。最大RAM为50%。
  • 内存回收 - 对于Active-Active数据库,默认的回收策略noeviction。Redis Enterprise 6.0.20及更高版本支持Active-Active数据库的所有回收策略,除非启用了自动分层

  • 功能(以前称为模块)- 当您创建一个新的内存数据库时,您可以在数据库中启用多个Redis Stack功能。对于自动分层数据库,您可以启用支持自动分层的功能。有关兼容性详情,请参见Redis Enterprise和Redis Stack功能兼容性

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

    要向数据库添加功能:

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

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

    3. 选择完成

传输层安全性

如果您在创建Active-Active数据库时启用了TLS,节点将使用TLS模式仅对CRDB通信要求TLS,以要求参与集群之间的通信进行TLS认证和加密。

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

高可用性

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

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

  • 副本高可用性 - 我们还建议您启用副本高可用性,以确保副本分片在此同步过程中高度可用。

聚类

  • 集群部分,您可以:

    • 启用分片并选择您希望在数据库中拥有的分片数量。当启用数据库集群时,数据库对多键操作有限制。

      您可以随时增加数据库中的分片数量。

    • 清除启用分片选项以仅使用一个分片,这样您就可以不受限制地使用多键操作

    注意:
    创建Active-Active数据库后,您无法启用或关闭数据库集群。
  • OSS Cluster API - OSS Cluster API 配置允许访问多个端点以提高吞吐量。OSS Cluster API 设置适用于参与集群中的所有 Active-Active 数据库实例。

    此配置要求客户端连接到主节点以检索集群拓扑,然后才能直接连接到每个节点上的代理。

    当您启用 OSS Cluster API 时,分片放置会自动更改为Sparse,数据库代理策略会自动更改为All primary shards

耐久性

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

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

访问控制

  • 未经身份验证的访问 - 您可以在不提供凭据的情况下以默认用户身份访问数据库。

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

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

    创建没有 ACLs 的数据库会启用一个具有对数据库完全访问权限的默认用户。您可以通过要求密码来保护默认用户的访问。

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

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

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

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

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

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

    4. 选择勾号以添加ACL。

因果一致性

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

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

测试Active-Active数据库连接

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

RATE THIS PAGE
Back to top ↑