组复制安全性和性能
- 组复制IP地址白名单
- 组复制插件具有一个配置选项,用于确定可以从哪些主机接受传入的组通信系统连接。此选项称为group_replication_ip_whitelist。如果在服务器s1上设置此选项,则当服务器s2为了建立群组通信而与s1建立连接时,s1首先接受白名单,然后再从s2接受连接。如果s2在白名单中,则s1接受
- 组复制安全套接字层(SSL)支持
- 可以使用SSL保护组通信连接和分布式恢复连接。以下各节说明如何配置连接。配置用于组通信的SSL安全套接字可用于组成员之间的组通信连接。组复制系统变量group_replication_ssl_mode用于激活对组通信连接使用SSL并指定连接的安全模式。默认设置表示不使用SSL。该选项具有以下可能的值
- 微调组通信线程
- 加载组复制插件时,组通信线程(GCT)循环运行。GCT从组和插件接收消息,处理与仲裁和故障检测相关的任务,发送一些保持活动的消息,并处理从/到服务器/组的传入和传出事务。GCT等待队列中的传入消息。当没有消息时,GCT等待。通过将此等待时间配置为稍长一点(进行主动等待),在实际进入睡眠之前可能会有所
- 流量控制
- 组复制可确保仅在组中的大多数成员都已收到事务并就并发发送的所有事务之间的相对顺序达成一致后,才提交事务。如果对组的写总数不超过组中任何成员的写容量,则此方法效果很好。如果这样做,并且某些成员的写入吞吐量比其他成员少,尤其是小于写入器成员,则这些成员可能开始落后于写入器。使某些成员落后于组会带来一些问
- 消息压缩
- 对于在线组成员之间发送的消息,默认情况下,组复制启用消息压缩。是否压缩特定消息取决于您使用group_replication_compression_threshold系统变量配置的阈值。有效载荷大于指定字节数的消息将被压缩。默认压缩阈值为1000000字节。例如,您可以使用以下语句将压缩阈值增加到
- 邮件碎片
- 在组复制组成员之间发送异常大的消息时,可能导致某些组成员被报告为失败并从该组驱逐。这是因为组复制的组通信引擎(XCom,一个Paxos变体)使用的单线程占用的消息处理时间太长,因此某些组成员可能会报告接收者失败。从MySQL 8.0.16开始,默认情况下,大型邮件信息会自动拆分为片段,分别发送并由收
- XCom缓存管理
- 组复制的组通信引擎(XCom,一个Paxos变体)包括一个缓存,用于缓存作为共识协议一部分的消息(及其元数据)。在其他功能中,消息高速缓存用于成员在无法与其他组成员通信之后返回该组的成员进行恢复。从MySQL 8.0.16起,可以使用group_replication_message_cache_s
- 对故障检测和网络分区的响应
- 组复制的故障检测机制旨在识别不再与组通信的组成员,并在它们似乎有故障时将其驱逐出去。具有故障检测机制会增加该组包含大多数正常工作的成员的机会,因此会正确处理来自客户端的请求。通常,所有小组成员都定期与所有其他小组成员交换消息。如果组成员在5秒钟内未收到来自特定伙伴的任何消息,则在此检测时间段结束时,