只读实例与RO组--助力MySQL实现读写分离,提升扩展性

Posted 腾讯数据库技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了只读实例与RO组--助力MySQL实现读写分离,提升扩展性相关的知识,希望对你有一定的参考价值。

架构

随着用户业务发展,数据库的读扩展往往成为必然需求。CDB for mysql支持只读实例,并且添加了RO组的概念,以实现读写分离和读能力的扩展。整体架构如下所示:

只读实例和主实例之间通过通过Binlog进行数据同步;只读实例的规格可以和主实例不同,但一般建议大于等于主实例规格。

产品特点

  • 按需扩展
    RO组以及RO实例可以水平扩展,应用可根据需要部署以实现读能力扩展。

  • 健康检查

    CDB为主实例和只读实例都提供了拨测、监控和报警功能。拨测以用户侧视角,探测实例是否可达、可用;监控提供详细的实例运行信息,最低至分钟级(秒级监控即将上线)的采集频率。当实例出现不可用,或者被隔离时,用户会收到相应报警。对于只读实例,CDB还提供了自动剔除功能。

  • 独立设置RO组参数
    每个RO组可以分别配置如下参数:

    • RO组名称:区别每个RO组单元

    • 是否开启自动剔除功能:开启后会自动剔除高延迟实例

    • 延迟阈值:超过此阈值后触发剔除动作

    • 最少保留实例数:RO组内最少保留的只读实例个数,到达此下限后不再剔除

  • 自动剔除高延迟实例
    CDB会自动检测只读实例的延迟。在开启了自动剔除功能的情况下,如果有只读实例的主从差距超过设置的阈值,那么只读实例会被隔离,不会再有流量分配到此只读实例上;如果只读实例主从差距恢复,那么只读实例会被自动加回RO组,继续服务读请求。

  • 重新负载均衡
    在进行了权重配置之后,会立即对新的流量请求生效,不会影响原有连接。如果有立即生效的需求,可以在设置权重时,选择重新负载均衡。重新负载均衡功能会kill原有连接,并根据新的权重进行流量分配。

已知限制

只读实例和主实例之间可能存在主从差距,不能保证在只读实例上的一致性读。如果有一致性读的需求,需要从主实例读取数据。

使用说明

如果希望了解如何使用只读实例和RO组功能,可参考下列腾讯云文档,欢迎试用!

  • 只读实例 (https://cloud.tencent.com/document/product/236/7270)

  • RO Group (https://cloud.tencent.com/document/product/236/11361)



以上是关于只读实例与RO组--助力MySQL实现读写分离,提升扩展性的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从同步与读写分离

MySQL主从同步与读写分离

MySQL主从同步与读写分离

mysql读写分离-mysql-proxy的配置

Redis早期的主从架构原理分析,早期如何实现读写分离的?

随手记:MyCAT实现MySQL集群与读写分离