Documentation Home
MySQL 路由器发行说明  / 版本 8.0 中的更改  /  MySQL Router 8.0.22 的变化(2020-10-19,全面上市)

MySQL Router 8.0.22 的变化(2020-10-19,全面上市)

添加或更改的功能

  • 通过为 MySQL 协议库实现 CMake 的 GenerateExportHeader() 功能改进了构建机制;以前是硬编码的。(缺陷号 31503429)

  • 严格的 1:1 线程与连接比率被事件驱动 + IO 线程池设计所取代。现在使用非阻塞 IO,而不是在线程中运行阻塞套接字操作,并且可以在套接字可用时使用线程。这将 Router 实例的并发连接限制从大约 5,000 提高到大约 50,000。

    这还添加了一个新的 [io] 配置部分,其中包含两个新的配置选项:处理异步操作的后端(接受轮询或 linux_epoll)和线程作为处理连接的 IO 线程数(0 表示所有可用,或 1-1024)。

  • 引导进程现在将 REST API 功能配置到生成的mysqlrouter.conf 配置文件中。新的可选 --https-port引导程序参数定义 port;默认定义为 8443。

    要禁止生成 REST API 配置,请传入新的--disable-rest引导选项。

  • 添加了 systemd 通知支持。如果在 Router 启动时设置了 NOTIFY_SOCKET 环境变量,Router 会将其值视为 unix 域套接字名称;所有基于 unix 的操作系统上的 DGRAM 和 Windows 上的命名管道路径。

修正错误

  • 使用最近引入的 _hidden 实例功能时,在启用 _disconnect_existing_sessions_when_hidden 的情况下隐藏辅助实例将关闭所有辅助实例,而不仅仅是隐藏的实例。此问题仅在使用主机名而不是 IP 地址时出现。(缺陷号 31665764)

  • 重构接受器关闭同步以避免可能的挂起。(缺陷号 31598112)

  • 改进路由器的元数据缓存刷新机制以解决竞争条件;例如在元数据当前正在刷新时发出的刷新请求。(缺陷号 31597874)

  • 改进了循环路由策略隔离检查机制。(缺陷号 31575084)

  • 添加了对 net_buffer_length 路由选项的支持。以前它被接受但被忽略以支持默认值。(缺陷号 31575027)

  • 添加了链路本地 IPv6 地址支持。以前包含“%”符号的值因“无效地址”错误而失败。(缺陷号 31574975)

  • 将节点角色上下文中所有出现的“master”替换为“primary”。(缺陷号 31508256)

  • 在 Windows 上,添加套接字写入支持以通过添加 socketpair() 的 AF_INET 变体来模拟它。(缺陷号 31414156)

  • 当路由器丢失主节点时,它会等待 10 秒超时的故障转移。以前它不检查终止请求,因此如果在路由器接受关闭请求之前找不到新的主服务器,可能需要长达 10 秒的时间。(缺陷号 31397127)

  • 主机名检测使用特定于 Linux 的代码解析外部网络接口的 IP 地址,这些代码直接与 c 风格类型的案例一起运行。使用来自 net::ip::tcp::address 和 ::network 的类型安全网络地址类型改进了可移植性,从而使其可移植到 Windows、Solaris、FreebBSD 和 macOS。(缺陷号 31370876)