# perseus
**Repository Path**: spjich/perseus
## Basic Information
- **Project Name**: perseus
- **Description**: DB读写分离
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2017-06-26
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 项目介绍
数据库读写分离是再基础不过的需求了,读写分离通常有三种方案实现:
1. 多数据源,通过代码硬编码实现.
2. 修改ORM框架实现.
3. 实现数据库协议来实现.
方案一最简单,但是开发人员工作量最大,并且容易犯错;虽然方案三开发人员来说是透明的且不限制编程语言,但是开发难度最大且数据库的支持范围
较窄.本项目基于方案二,选择了Java中最流行的Mybatis和Spring来实现,所以只适用于基于Mybatis+Spring实现的Java项目.
### 功能
1. 事务,非readonly到主库,readonly到从库.
2. select到读库,insert/update/delete到主库.
3. 支持select强制路由到主库(尽量避免,通过业务逻辑优化来绕过).
### 稳定度
该项目在笔者公司,上百个项目中广泛应用,已经很成熟,测试代码中有详细的配置和测试代码.
### 核心配置
```
```