全球数据库网络(GDN)集群使用Orca

对于全球化部署的业务,异地用户访问中心数据库会因网络延迟导致应用响应缓慢。通过在各地域的全球数据库网络(GDN)集群上开启Orca功能,可将数据以Key-Value(兼容Redis协议)存储在靠近用户的集群中,实现就近读取。此方案可降低读取延迟,提升应用响应速度,同时将所有写操作转发至主集群执行,确保数据的一致性。

工作原理

全球数据库网络(GDN)中,Orca功能的工作机制结合了数据就近读取的低延迟优势与主集群写入的一致性保障。

  • 数据同步:主集群上的所有Orca数据(Key-Value)将通过PolarDB的物理复制通道,借助物理日志并行回放等技术,以异步方式从主集群同步至所有从集群。主从集群间的数据复制延迟可控制在2秒以内。这种同步方式不会对主集群的性能和稳定性产生影响,从而确保了数据在全局范围内的最终一致性。

  • 读写分离

    • 读请求:在应用程序连接至从集群的Orca连接地址并发起读请求(例如GET)时,该请求会由从集群直接处理并返回结果,实现低延迟的就近读取。

    • 写请求:当应用程序连接至从集群的Orca连接地址并发起写请求(例如SET)时,该请求不会在从集群上直接执行。相反,从集群会将请求转发至主集群,由主集群完成实际的写入操作后,再将结果返回给应用程序。数据变更随后将通过物理复制通道同步回从集群。

适用范围

开始操作前,请确保您的集群内核版本满足Orca功能的开启条件:MySQL 8.0.2,且内核小版本需为8.0.2.2.24及以上。

操作步骤

步骤一:(可选)创建全球数据库网络(GDN)

说明
  • 若您已创建全球数据库网络(GDN),则可以忽略当前步骤。

  • 详细创建流程及说明,请参见创建全球数据库网络

  1. 登录PolarDB控制台,单击左侧导航栏中的全球数据库网络(GDN)

  2. 全球数据库网络(GDN)页面,单击创建全球数据库网络

  3. 创建全球数据库网络(GDN)对话框中,配置详细信息并单击确定

步骤二:主集群开启Orca功能

  1. 登录PolarDB控制台,在全球数据库网络(GDN)页面单击全球数据库网络ID进入GDN详情页。

  2. 集群列表区域单击主集群ID,进入主集群详情页。

  3. 基本信息页面的配置信息区域,单击Orca功能右侧的开启image

步骤三:在主集群中创建Orca账号

  1. 集群列表区域单击主集群ID,进入主集群详情页。

  2. 配置与管理 > 账号管理页面,单击创建账号

  3. 在创建账号页面,选择Orca账号并填写账号名及密码等信息,单击确定以完成创建。image

说明

GDN中的从集群不支持创建数据库账号(Orca账号),在主集群中创建账号后,系统将自动同步至从集群。

步骤四:(可选)从集群开启Orca功能

说明
  • 若您的GDN中尚未添加任何地域的从集群,则可以忽略当前步骤。在根据实际业务情况在GDN中添加从集群后,再进行开启。

  • 请参考以下步骤为您GDN中的所有从集群开启Orca功能。

  1. 集群列表区域单击从集群ID,进入从集群详情页。

  2. 基本信息页面的配置信息区域,单击Orca功能右侧的开启image

  3. 等待功能开启,并在配置与管理 > 账号管理页面确认Orca账号已同步。

步骤五:配置应用程序访问权限

请将您应用程序所在环境(例如ECS实例)的IP地址添加至需要连接(根据所在地域就近原则)的主集群或从集群的集群白名单中。

步骤六:连接并验证读写行为

通过redis-cli或其他客户端工具连接到GDN中集群的连接地址,验证读写分离和数据同步是否正常工作。

说明

本步骤为在验证Orca数据同步情况,需将应用程序所在环境(例如ECS实例)的IP地址同时添加至主集群及从集群的白名单中。在实际应用中,仅需在需要连接的集群中添加应用程序所在环境的IP地址。

  1. 向主集群写入数据:连接到主集群的Orca地址,并写入一个键值对。

    # 连接到主集群的Orca地址
    redis-cli -h <主集群Orca地址> -p 6379 -a <Orca账号:密码>
    
    # 写入一个测试键
    SET gdn_orca_test_key "hello_from_primary_cluster"
    # > OK
    
    # 读取验证
    GET gdn_orca_test_key
    # > "hello_from_primary_cluster"
  2. 在从集群读取数据:连接到从集群的Orca地址,验证是否能读取到刚写入的数据。此操作为本地读取,应具有较低的延迟。

    # 连接到从集群的Orca地址
    redis-cli -h <从集群Orca地址> -p 6379 -a <Orca账号:密码>
    
    # 读取验证
    GET gdn_orca_test_key
    # > "hello_from_primary_cluster"
  3. 验证从集群的写操作转发:在从集群的连接中执行写命令后,立即进行读取,以验证写操作是否已成功转发至主集群并同步回从集群。

    # 在从集群连接中执行写命令
    SET gdn_orca_write_test "write_from_secondary_cluster"
    # > OK
    
    # 立即读取,验证数据可用
    GET gdn_orca_write_test
    # > "write_from_secondary_cluster"

    SET命令的成功返回表明写转发机制工作正常。

  4. 查看监控:所有写操作最终在主集群执行,因此相关的性能指标也体现在主集群的监控中。

    • 主集群:进入主集群详情页,在性能监控页面的集群页签下,查看Orca性能指标。image

    • 从集群:进入从集群详情页,在性能监控页面的集群页签下,查看Orca性能指标。

      说明

      除了在从集群中无法展示每秒写请求数量外,Key的数量也不会在从集群中体现。请前往主集群进行查看。

      image