MySQL Router 8.2.0 GA

2023年 10月 26日 42.9k 0

MySQL Router 8.2.0于2023年10月25日正式发行。该版本带来了大家期待已久的读写分离功能。

MySQLRouter通过配置读写分离,可以将所有读流量定向到只读实例,将所有写流量定向到读写实例。读写实例可以是InnoDB Cluster中的主成员或InnoDB Replica中的主机。只读实例是InnoDB Cluster中的次要成员,或者是InnoDB Replica中的主/从机。MySQL Router将每个查询分类为读或写,并将其定向到适当的后端。也可以手动或在程序中使用“ROUTER SET”或“query_attributes”指定查询的类型。如何配置?要启用读写分离,MySQL Router必须启用以下选项:

  • access_mode: 必须设置为auto
  • connection_sharing: 必须设置为1
  • protocol: 必须设置为 classic
  • destinations: 必须设置为metadata-cache角色设置为“PRIMARY_AND_SECONDARY”的 URL 

每个会话配置可以通过以下选项,从命令行为每个会话定义读写分离配置:

  • ROUTER SET optionName='value'
  • query_attributes router.optionName value

optionName的值包括如下:

  • access_mode设置为以下值之一:
    • read_write:所有会话流量都发送到读写服务器。
    • read_only:所有会话流量都发送到只读服务器。
    • auto:根据事务类型选择服务器,读取指向 read_only 服务器,写入指向 read_write 服务器。
  • wait_for_my_writes [ 0 | 1 ]:如果启用1,只读查询将等待最后写入的事务。
  • wait_for_my_writes_timeout [ 0 | 4294967295 ]:在回退到 read_write 目标之前,等待 read_only 目标应用写入事务的最长时间(以秒为单位)。默认值为 1。

例如,

    SQL> ROUTER SET access_mode='read_write'
    SQL> query_attribute router.access_mode read_write

    引导启动

    MySQL Router引导启动时,将创建如下默认配置:

      [router:read_write_split]
      bind_port=6450
      destinations=metadata-cache://mycluster/?role=PRIMARY_AND_SECONDARY
      routing_strategy=round-robin
      access_mode=auto
      protocol=classic


      [DEFAULT]
      max_idle_server_connections=64

      使用过程中,MySQL Router将区分SQL语句进行读写分离,详细的内容可以访问官网手册确认。

      以上内容是关于MySQL Router 8.2的读写分离功能介绍,欢迎大家使用,并提出改进建议。

      感谢关注“MySQL解决方案工程师”!

      相关文章

      Oracle如何使用授予和撤销权限的语法和示例
      Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
      下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
      社区版oceanbase安装
      Oracle 导出CSV工具-sqluldr2
      ETL数据集成丨快速将MySQL数据迁移至Doris数据库

      发布评论