天天看点

使用带有MySQL Router的Replica Set使用带有MySQL Router的Replica Set

使用带有MySQL Router的Replica Set

您可以使用MySQL Router 8.0.19和更高版本对replica set进行引导,就像可以引导InnoDB cluster一样,将MySQL路由器与InnoDB Cluster结合使用”。生成的MySQL路由器配置文件的唯一区别是添加了cluster_type选项。将MySQL路由器引导到副本集时,生成的配置文件包括:

cluster_type=rs

将MySQL Router与Replica Set一起使用时,请注意:

MySQL Router的读写端口将客户端连接指向Replica Set的主实例

MySQL Router的只读端口将客户端连接定向到Replica Set的从实例,尽管它也可以将它们定向到主实例

MySQL Router从主实例获取Replica Set的拓扑信息

当主实例不可用并且升级了另一个实例时,MySQL Router会自动恢复

只需要运行下面这条命令即可将来集群信息注册到MySQL Router中

mysqlrouter --bootstrap [email protected]:3306 --user=mysqlrouter           

复制

从mysqlrouter的配置文件中可以看出集群状态为rs

配置文件路径/etc/mysqlrouter/mysqlrouter.conf

cluster_type=rs
routing_strategy=first-available
routing_strategy=first-available           

复制

通过mysqlrouter上的命令可以查看到接入集群的MySQL Router列表

MySQL  10.210.1.1:3306 ssl  JS > var rs = dba.getReplicaSet()
 You are connected to a member of replicaset 'example'.
 MySQL  10.210.1.1:3306 ssl  JS > rs.listRouters()
{
    "replicaSetName": "example", 
    "routers": {
        "mysqlnode1::system": {
            "hostname": "mysqlnode1", 
            "lastCheckIn": "2020-01-22 14:29:27", 
            "roPort": 6447, 
            "roXPort": 64470, 
            "rwPort": 6446, 
            "rwXPort": 64460, 
            "version": "8.0.19"
        }, 
        "mysqlnode2::system": {
            "hostname": "mysqlnode2", 
            "lastCheckIn": "2020-01-22 14:29:28", 
            "roPort": 6447, 
            "roXPort": 64470, 
            "rwPort": 6446, 
            "rwXPort": 64460, 
            "version": "8.0.19"
        }
    }
}           

复制