一、OceanBase数据库概述
1.1 OceanBase核心特性
OceanBase是由蚂蚁集团完全自主研发的分布式关系型数据库,具有以下显著特点:
特性 | 说明 | 技术优势 |
---|---|---|
高可用 | 采用Paxos协议实现多副本强一致性 | RPO=0,RTO<30秒 |
水平扩展 | 透明分片技术 | 支持在线扩容,业务无感知 |
兼容性 | 高度兼容MySQL协议 | 现有MySQL应用可无缝迁移 |
分布式事务 | 全局时间戳服务 | 保证跨节点事务的ACID特性 |
混合负载 | 同一引擎处理OLTP和OLAP | 避免ETL过程,实时分析 |
1.2 OceanBase架构解析
OceanBase采用"分区-副本-节点"三级分布式架构:
关键组件说明:
- OBProxy:智能路由代理,自动识别SQL路由到正确分片
- OBServer:存储和计算节点,包含SQL引擎和存储引擎
- RootService:集群管理节点,负责元数据管理和调度
1.3 与SpringBoot整合的价值
SpringBoot整合OceanBase能带来:
- 快速开发:自动配置减少样板代码
- 弹性扩展:轻松应对业务量增长
- 高可用保障:内置故障自动转移机制
- 运维简化:完善的健康检查和指标监控
二、环境准备与基础整合
2.1 环境配置要求
组件 | 版本要求 | 备注 |
---|---|---|
JDK | 1.8+ | 推荐JDK11或JDK17 |
SpringBoot | 2.5.x+ | 本文基于2.7.0 |
OceanBase | 3.x+ | 社区版或企业版 |
驱动 | ob-client | 或MySQL驱动 |
2.2 基础依赖配置
在pom.xml中添加关键依赖:
<dependencies>
<!-- SpringBoot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- OceanBase官方驱动 -->
<dependency>
<groupId>com.oceanbase</groupId>
<artifactId>oceanbase-client</artifactId>
<version>2.4.0</version>
</dependency>
<!-- 或使用MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
<scope>runtime</scope>
</dependency>
</dependencies>
2.3 基础数据源配置
application.yml配置示例:
spring:
datasource:
driver-class-name: com.oceanbase.jdbc.Driver # 或com.mysql.cj.jdbc.Driver
url: jdbc:oceanbase://10.0.0.1:2881/test_db?useSSL=false&useUnicode=true
username: admin@tenant
password: your_password
hikari:
pool-name: OceanBase-HikariCP
maximum-pool-size: 20
minimum-idle: 5