InnoDB集群拓扑发生变化(在集群中添加或删除实例)时,MySQL路由器会重新配置吗?
MySQL Router 8.0.13及更早版本
8.0.14之前的路由器版本需要:
- 手动更新配置 bootstrap_server_addresses 以基于更新的元数据。
- Router 重启
MySQL Router 8.0.14及更高版本
从 MySQL Router 8.0.14 开始添加了一个新的动态配置引导功能,可以跟踪当前的MySQL InnoDB集群元数据服务器。mysqlrouter.conf 用 dynamic_state 替换现有的 bootstrap_server_addresses 中的选项。
MySQL路由器现在可以跟踪和存储活动的MySQL InnoDB集群元数据服务器地址,并在路由器重启时加载它们。以前,元数据服务器信息是在路由器的初始引导操作期间定义的,并作为引导服务器地址静态存储在配置文件中。然后从MySQL路由器8.0.14开始:
- 当集群拓扑发生变化时,配置和路由会自动更新。
- 不需要重启路由器
这个新的 dynamic_state 选项在--bootstrap 阶段在mysqlrouter.conf [DEFAULT]部分中定义。它的值指向一个名为state.json的生成的JSON文件,该文件用InnoDB集群元数据服务器地址和组复制ID初始化;路由器运行时会添加和更新附加信息。
注意:dynamic_state 取代 bootstrap_server_addresses,引导过程不再定义bootstrap_server_addresses;而且这两个选项不能同时设置。为了向后兼容,只要引导服务器地址 则它的功能与以前的路由器版本一样,并且不使用这一新的动态配置功能。