3.5.1 配置

要启用读写分离,以下 router 选项必须启用

按会话配置

读写分离配置可以使用以下方法为每个会话定义

  • ROUTER SET optionName='value'

  • query_attributes router.optionName value

以下是可能的 optionNames 和值

  • access_mode 设置为以下值之一

    • read_write: 所有会话流量都发送到 read_write 服务器。

    • read_only: 所有会话流量都发送到 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。

注意

如果客户端发送 change_userreset_connection,会话变量将重置为其初始值。

例如

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

引导

当 MySQL 路由器引导时,默认配置将使用以下值创建

[DEFAULT]
max_idle_server_connections=64

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

要禁用此配置,必须使用 --disable-rw-split 引导。