# 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强制路由到主库(尽量避免,通过业务逻辑优化来绕过). ### 稳定度 该项目在笔者公司,上百个项目中广泛应用,已经很成熟,测试代码中有详细的配置和测试代码. ### 核心配置 ``` ```