一文读懂InnoDBCluster与My

MySQLRouter与组复制和MySQLShell高度整合,只有将其与组复制和MySQLShell共同使用,才能够称为InnoDBCluster。

一、配置MySQLRouter :

在启动MySQLRouter时,如果用户配置了引导启动选项,则系统可以为InnoDBCluster自动配置路由。

引导过程是运行路由器的一种特殊方式,它不按照通常的方法启动路由器,而是基于元数据的配置文件mysqlrouter.conf。当用户在命令行中启动路由器时,需要指定--bootstrap选项,它会从元数据中检索拓扑信息,并配置通往MySQL实例的路由连接。

在Windows上,用户可以使用MySQLInstaller来配置启动路由器。在路由器启动后,客户端应用程序会连接到它发布的端口,路由器根据传入的端口自动将客户端连接重定向到实例。例如,端口默认用于使用经典MySQL协议的读写连接。

如果组复制的拓扑发生变化(例如,由于一个实例的意外故障,路由器检测到变化),则系统会自动调整路由,将数据流量连接到其余的实例上。客户端应用程序无须处理故障转移或了解底层拓扑的信息。

InnoDBCluster使用路由器需要如下两个步骤:

1.创建用于路由器获取InnoDBCluster元数据的MySQL账户。

执行语句如下:

2.部署路由器,执行mysqlrouter--bootstraproot

localhost:--force--user=root命令。

注意,如果用户之前为该实例配置过路由,则可以通过指定force选项强制引导启动。

执行语句如下:

接上图

上面的内容是引导启动路由器时输出的信息,信息提示,MySQL经典协议使用端口和端口,X协议使用0端口和0端口,每种协议使用的两个端口分别用于读写和只读。

在引导启动之后,用户可以按照输出信息的提示,以系统服务的方式启动路由器,这里仅做演示用。因此,直接在命令行启动mysqlrouter。

执行语句如下:

路由器已经成功启动。现在,使用MySQLShell连接路由器进行验证。

执行语句如下:

用户可以通过连接本机的端口连接到MySQL实例,执行select

port;语句,结果显示实际的端口为MySQL实例的端口。因此,路由器已经成功地为InnoDBCluster进行了路由,将数据流量路由到对应的MySQL实例上。

二、AdminAPI与MySQLRouter :

在一个运行的集群中,AdminAPI可以引导多个路由器。用户可以使用Cluster.listRouters()方法显示所有注册的路由器列表。

执行语句如下:

返回的信息包括如下内容。

1.路由器的名称。

2.上次接入的时间戳,由路由器存储在元数据中的周期性回显信息产生。

3.MySQL经典协议连接的只读和读写端口。

4.ySQLX协议连接的只读和读写端口。

5.路由器的版本。

内容摘自《MySQL高可用解决方案――从主从复制到InnoDBCluster架构》第八章

徐轶韬著

本书特点:

本书对MySQL官方提供的高可用解决方案逐一进行介绍,详细阐述每种方案的原理、架构、优缺点以及适用场景,并配合演示说明,能够帮助读者快速理解相关内容。区别于市面上其他MySQL相关图书,本书专注于MySQL官方团队提供的解决方案。此外,本书还介绍了MySQL8.0的部分内容,使读者能够更加全面地了解MySQL的生态和工具。

本书适合:

MySQL初学者;

数据库架构师;

DBA(DatabaseAdministrator数据库管理员);

相关软件开发人员;

组织内部IT负责人。




转载请注明:http://www.aierlanlan.com/grrz/7876.html