平台设计-多数据源支持

简介: 平台倡导分布数据库,最简单的分库逻辑是按业务领域

平台倡导分布数据库,最简单的分库逻辑是按业务领域,例如人力资源系统一个库,客户关系管理一个库(举个例子而已,在平台正式的系统中,人力资源系统又细分为核心库、绩效管理库、薪资管理库等)。一个微服务对应单个数据源。

      看过很多项目,号称是微服务架构,但是多个微服务实际上联的是同一个库;各个微服务之间实际上不相互调用,需要取数据时,直接从对应表里拿数据,从而导致有大量的重复代码(公用的表对应的实体类、数据访问层、甚至服务层)。平台不倡导这种模式。

      但是万事不能绝对,有种场合必须使用多数据源。例如涉及到数据同步、数据传输的应用,就需要多数据源。平台的后台服务框架支持多数据源,只配置一个数据源时为单数据源;配置多个时就是多个。

     一套架构即可以支持单数据源,也可以支持多数据源,听上去很容易,实际做起来很难很复杂。平台的技术体系是JPA+Hibernate,单数据源时很简单,根本不需要了解太多底层,事实上很多程序都不清楚底层是如何运作的。多数据源配置就很复杂,按照网上的教程配置好后,不出意外的是不能用。网上大部分东西都是你抄我,我抄你,是不是真正自己试过,我持怀疑态度。好不容易调通了,但是怎么兼容单数据源和多数据源又是问题。一个一个错误的消除,最终OK了。

      平台上大部分技术都通过开源获得的,例如druid、nacos、springcloud、feign等等,平台自身的价值如何体现?其实这个问题很好理解,例如国产大飞机C919的零部件都是外购的,那C919的价值何在?系统集成不是件简单的事情。

相关文章
|
存储 SQL Web App开发
SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库
SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库
522 2
|
Java 数据库连接 Apache
Correct the classpath of your application so that it contains compatible versions of the classes com
Correct the classpath of your application so that it contains compatible versions of the classes com
|
Java 数据库连接
SpringBoot配置多数据源实战
第四届光学与机器视觉国际学术会议(ICOMV 2025) 2025 4th International Conference on Optics and Machine Vision
928 8
|
SQL Java 数据库
10、MyBatis-Plus 多数据源
这篇文章介绍了在MyBatis-Plus中实现多数据源的方法,包括创建不同的数据库和表、引入动态数据源依赖、配置多个数据源、创建用户和商品的Service类,以及如何进行测试来验证多数据源的功能。
|
XML Java 关系型数据库
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
|
Linux 数据处理
Linux命令`install`详解:不仅仅是安装工具
`install`命令在Linux中并非仅用于安装软件,而是用于精确复制文件和目录,设置权限及所有权。它能创建目标目录、处理符号链接并保留时间戳。例如,`install -m 644 source.txt /dest`用于复制文件并设置权限,`install -d -m 755 /dest/dir`创建目录。使用时要注意权限设置,避免误操作,并记录命令以备恢复。
|
Java 数据库连接 数据库
【Spring技术专题】「实战开发系列」保姆级教你SpringBoot整合Mybatis框架实现多数据源的静态数据源和动态数据源配置落地
Mybatis是一个基于JDBC实现的,支持普通 SQL 查询、存储过程和高级映射的优秀持久层框架,去掉了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。 Mybatis主要思想是将程序中大量的 SQL 语句剥离出来,配置在配置文件中,以实现 SQL 的灵活配置。在所有 ORM 框架中都有一个非常重要的媒介——PO(持久化对象),PO 的作用就是完成持久化操作,通过该对象对数据库执行增删改的操作,以面向对象的方式操作数据库。
551 1
【Spring技术专题】「实战开发系列」保姆级教你SpringBoot整合Mybatis框架实现多数据源的静态数据源和动态数据源配置落地
|
Java
解决办法:Invalid Gradle JDK configuration found
解决办法:Invalid Gradle JDK configuration found
1088 1
|
消息中间件 Docker 容器
docker构建rabbitmq并配置延迟队列插件
docker构建rabbitmq并配置延迟队列插件
896 0
|
SQL 安全 搜索推荐
Java连接SqlServer错误
Java连接SqlServer错误
518 1