云服务器内容精选

  • 开启读写分离 登录分布式数据库中间件控制台。 在实例管理列表页面,选择目标实例。 单击实例名称,进入基本信息页面。 在左侧导航栏,选择“DN管理”页签,单击“开启读写分离”。 在弹窗中单击“确定”,开启读写分离。 对于RDS for MySQL实例来说,开启读写分离后,会将主实例的读权重设置为100,您可以根据业务需求自行调整主实例和只读实例的读权重。 对于GaussDB(for MySQL)实例来说,开启读写分离后需要您根据业务需求自行调整主实例和只读实例的读权重。 由于只读实例的数据是从主实例异步复制过来的,可能存在可见性延迟。 开启读写分离后,读查询会根据配置的读权重按比例分配至主或只读节点,分配至只读节点的查询可能存在一定的复制延迟。对于不在同一事务中,但是对前一个事务写入的数据存在逻辑依赖的查询语句,建议在查询语句中添加/*+ db_type=master*/,此hint可以指定本次查询强制走主节点,确保查询到前一个事务最新写入的数据。
  • 操作步骤 登录DDM控制台,选择目标DDM实例,进入实例基本信息页面。 单击选择“DN管理”模块。 图1 DN管理 单击页面上方的“开启读写分离”。 图2 开启读写分离 在弹窗中单击“确定”开启读写分离。 图3 读写分离弹窗 设置实例的读写权重。 只读实例挂载后默认承载全部可分离的只读请求,如果需要设置实例的读写权重,可参照以下操作来设置。 如果需要设置多个实例的读写权重,可单击实例上方的“设置读权重”来进行批量设置。如图4所示。 在批量设置的弹窗中,“同步”功能可以用来将第一个实例的读权重设置同步到其他的实例上,如图5所示。此操作需满足所有实例的只读实例数量一致才可以实行。如果有实例的只读实例数量与其他实例不一致,则无法使用“同步”功能,需手动设置各个实例的读权重,如图6所示。 图4 批量设置读权重 图5 同步第一个实例的读权重 图6 手动设置权重 如果需要设置单个实例的读写权重,可单击操作栏的“设置读权重”来进行设置。 图7 单个设置读权重 设置读权重命令下发成功提示。 图8 设置读权重命令下发成功
  • 概述 DDM读写分离功能可以将只读查询的流量按比例分摊至下挂存储节点的主实例和只读实例,从而减轻主实例的工作负担,保障读写事务的性能。此功能对应用透明,业务代码无需改造,只需要在控制台上设置主实例和只读实例的读权重,即可实现将读流量按照权重分流到主实例和只读实例上,写流量不受影响,默认会分流到主实例上。一般来说该比例的设置需结合业务实际特点以及存储节点实际负载进行设置。 只读实例上的数据是从主实例上异步复制而来,所以存在毫秒级的延迟。如果只读查询对数据实时性要求不高(容忍亚秒级可见性延迟)且只读查询的开销较大并对业务核心读写事务有一定影响,设置主实例和只读实例的权重为0:100,即所有只读查询均由只读实例承担,最大程度保证主实例性能。对于其他场景,建议结合实际情况酌情调整。 若select语句带有hint或者在事务中做了数据修改的select语句,读请求都会下发主实例执行。 如果存储节点主实例故障,此时只读实例上Seconds_Behind_Master=NULL,只读查询仍会下发到主实例执行,需要尽快恢复主实例。