苞米豆-多数据源 3.3.0 重磅更新:本地多数据源事务方案

dynamic-datasource是一款极其简单的基于spring-boot的多数据源组件,可以方便快速的让你的系统支持多数据源。

https://dynamic-datasource.com/ 官网

并且对各种第三方提供了支持,且拥有极高的扩展性。

但基于aop的方案始终有个问题难以解决,就是事务问题。

本项目作者常常收到以下问题。

  1. 为什么我加了spring事务注解,切换数据源失败了?
  2. 我了解涉及了分布式事务了,知道项目可以很方便集成seata。但我场景简单,有没有不依赖第三方的方案?

自从3.3.0开始,由seata的核心贡献者https://github.com/a364176773 贡献了基于connection代理的方案。

初版肯定会有一些问题,建议大家在本地仔细测试后再上生产,希望大家多提意见。

https://dynamic-datasource.com/guide/tx/Local.html 官网查看详细文档。

v3.3.0

  • feat:重要:本地多数据源事物支持。 @FUNKYE
  • feat:底层数据源保存方式修改为ConcurrentHashMap。 @刘尚
  • revert:重构底层Creator的创建规则。@刘尚
  • feat:添加同名数据源覆盖老数据源。@刘尚
  • feat:支持部分从接口继承DS的场景。@CQJames
  • fix:修复Druid防火墙一个参数设置错误。@mrf
  • fix:修复极端情况下的设置数据源异常处理。@happier233

特性

  1. 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。
  2. 支持数据库敏感配置信息 加密 ENC()。
  3. 支持每个数据库独立初始化表结构schema和数据库database。
  4. 支持 自定义注解 ,需继承DS(3.2.0+)。
  5. 提供对Druid,Mybatis-Plus,P6sy,Jndi的快速集成。
  6. 简化Druid和HikariCp配置,提供 全局参数配置 。配置一次,全局通用。
  7. 提供 自定义数据源来源 方案。
  8. 提供项目启动后 动态增加移除数据源 方案。
  9. 提供Mybatis环境下的 纯读写分离 方案。
  10. 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。
  11. 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。
  12. 提供对shiro,sharding-jdbc,quartz等第三方库集成的方案,注意事项和示例。
  13. 提供 基于seata的分布式事务方案。 附:不支持原生spring事务。
  14. 提供 本地多数据源事务方案。 附:不支持原生spring事务。

猜你喜欢

转载自www.oschina.net/news/124390/dynamic-datasource-3-3-0-released