MySQL路由器8.0  / 第一章 一般信息  /  1.2 集群元数据和状态

1.2 集群元数据和状态

MySQL Router 位于应用程序和 MySQL 服务器之间。应用程序正常连接到路由器,就好像它们连接到普通的 MySQL 服务器一样。每当应用程序连接到 Router 时,Router 从它知道的候选池中选择一个合适的 MySQL 服务器,然后连接到它。从那一刻起,路由器转发应用程序和 MySQL 之间的所有网络流量,包括从它返回的响应。

MySQL Router 保留在线 MySQL 服务器的缓存列表,或配置的 InnoDB 集群的拓扑和状态。最初,该列表是在路由器启动时从路由器的配置文件加载的。--bootstrap当使用该选项 引导路由器时,此列表是使用 InnoDB Cluster 服务器生成的 。

为了保持缓存更新,元数据缓存组件保持与包含元数据的 InnoDB Cluster 服务器之一的打开连接。它通过从 MySQL 的性能模式查询元数据数据库和实时状态信息来实现。每当修改 InnoDB 集群时,集群元数据都会更改,例如使用 MySQL Shell 添加或删除 MySQL 服务器,并且每当检测到集群状态更改时,MySQL 服务器的 Group Replication 插件会实时更新 performance_schema 表。例如,如果其中一台 MySQL 服务器意外关闭。

当 Router 检测到连接的 MySQL 服务器关闭时,例如因为元数据缓存失去连接并且无法再次连接,它会尝试连接到不同的 MySQL 服务器以从新的 MySQL 服务器获取元数据和 InnoDB Cluster 状态。

笔记

使用 MySQL Shell 删除集群元数据(例如 dba.dropMetadataSchema())会导致路由器删除所有当前连接并禁止新连接。这会导致完全中断。

与关闭的 MySQL 服务器的应用程序连接将自动关闭。然后他们必须重新连接到路由器,路由器将他们重定向到在线 MySQL 服务器。