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

1.2集群元数据和状态

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

MySQL路由器保存在线MySQL服务器的缓存列表,或者配置的InnoDB集群的拓扑和状态。最初,当路由器启动时,该列表从路由器的配置文件中加载。这个列表是在InnoDB集群服务器中生成的,当路由器使用——引导选择。

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

当路由器检测到一个连接的MySQL服务器关闭时,例如因为元数据缓存失去连接而无法再次连接,它会尝试连接到另一个MySQL服务器,从新的MySQL服务器获取元数据和InnoDB集群状态。

请注意

使用MySQL Shell删除集群元数据,例如dba.dropMetadataSchema (),导致路由器丢弃所有当前连接并禁止新的连接。这将导致完全停机。

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