更新时间:2024-12-19 GMT+08:00
分享

开发简介

本文主要描述如何使用MAS-DB-SDK在多活容灾场景下对涉及配置多数据源服务进行开发,结合样例讲解MAS-DB-SDK在开发过程中如何使用。

本文假设您已经具备如下开发能力:

  • 熟悉Java语言,并有Java程序开发经验。
  • 熟悉Maven。
  • 熟悉服务配置数据源方式。

MAS-DB-SDK

MAS-DB-SDK是一个DataSource的实现,可替代spring-boot-starter-jdbc为Spring注入一个DataSource对象,通过与MAS服务对接从而实现多数据源管理的工具,具有以下特性:

  • 多活容灾能力。

    多活容灾能力是指在同城场景下实现多活故障自动切换,由SDK和MAS服务配合完成。

  • 读写分离。

    读写分离由SDK实现,支持随机、轮询的负载均衡算法。

  • 自定义指定数据源进行数据访问。

    用户也可以通过注解方式指定数据源以及主从数据库进行数据读写。

    注解中source是指定选择哪个节点的数据源,从YAML配置中的router.nodes中选取,如果不设置,请使用当前DCG仲裁的数据中心(MAS平台上激活的数据中心,如果未对接MAS平台,则选取本地配置中的active,即yaml配置中的router.active)。

    DCG为多活实例的仲裁中心,提供端到端(流量-应用-数据)仲裁和统一多活切换管控能力。

    注解中的HintType用于查询时指定主从数据库,适用于读写分离场景,当前支持的配置值有:HintType.READMASTER(从master库读取)、HintType.READSLAVE(从slave库读取)、HintType.NONE(不指定),不指定时,默认从slave库读取。HintType只针对读操作有效,写操作HintType无效。

    SDK本身不支持数据源间的数据同步,数据源同步需要依赖DRS服务。

    SDK不支持分布式事务,同一个事务处理过程中,不支持切换数据库。

相关文档