技术文章

当前位置:首页>帮助手册>技术文章

o2server启用数据库配置分库实现分库存储和数据库中间件+分库配置存储

时间:2022-08-11   

数据库中间件实现分库分表数据存储

o2server数据存储通过 openjpa 实现 ormapping,再通过durid的数据库连接池实现和数据库的连接.所以o2server可以使用各种数据库中间件(数据库代理)实现数据库的分库分表存储.

数据库中间件.drawio.png


数据库中间件配置可以参考:mysql实现数据库读写分离搭建高负载o2server集群

配置多数据库实现分库数据存储

o2server同时支持在业务层面实现数据分库存储.可以通过在:

o2server/externalDataSources.json

通过配置实现针对不同的数据进行分库存储,实际环境中已完成工作,已办,已阅会随着使用年限的增长不断增加,但访问较少(冷数据),通过下面的配置我们将已完成工作,已办,已阅存储到独立的数据库db2中,其他数据则存储到默认的db1中.这样可以较好的存储数据而不用经常考虑扩容和性能问题.

配置分库.drawio.png

[
{"url":"jdbc:mysql://192.168.100.1:3306/db1?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8",      "username" : "root","password" :"123456","includes": [],"excludes": [
     "com.x.processplatform.core.entity.content.WorkCompleted",
            "com.x.processplatform.core.entity.content.TaskCompleted",
            "com.x.processplatform.core.entity.content.ReadCompleted"
            ],"enable" : true},
{"url":"jdbc:mysql://192.168.100.2:3306/db2?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8",      "username" : "root","password" :"123456","includes": [
            "com.x.processplatform.core.entity.content.WorkCompleted",
            "com.x.processplatform.core.entity.content.TaskCompleted",
            "com.x.processplatform.core.entity.content.ReadCompleted"
            ],"excludes": [],"enable" : true}
]


在第一条配置中将配置数据库链接到db1,由于数据是通过ormapping映射到数据库表的,数据库表是通过entity的java类名进行标识的.

在excludes中将这三个类排除在外 在第二条配置中将配置数据库链接到db2,在includes中包含在第一条配置中排除的类. 这样这三个类关联的数据库表将存储到db2中. 这样就可以实现在业务层面实现数据库分库存储.

多数据库配置必须实现类名(表)之间的互斥.

"数据库中间件" + "配置多数据库" 实现数据存储层面和业务层面的数据库分库分表环境

也可以结合"数据库中间件" 和 "配置多数据库" 实现复杂的数据库分库分表配置.

通过上述的配置混合即可实现,这样可以实现对数据存储的精细控制.

数据库中间件+配置分库混合.drawio.png


上一篇:使用鉴权配置实现外部系统与O2OA平台的单点登录

下一篇:关联内容管理文档和审批流程