zoukankan      html  css  js  c++  java
  • 我需要一个什么样子的动态数据源模块

    引言

    过年的时候做过一个很简单的动态数据源的模块,给公司的一个新项目使用了,同时公司另外一个项目也参考了我做的动态数据源的设计,目前大家对我做的这个模块还是比较认可的,但是也存在一些问题:

    1. 对 load blance 的支持不够

      在先期设计的时候没有考虑集群的情况,导致存储在数据库的数据源信息的状态等信息一旦被其中一台机器修改,其他的机器就不能知晓这条数据被修改过。目前的解决方案是当一台机器修改数据的时候把修改的数据放在redis,另外一台机器先去读取redis中的数据,然后再去看数据库中的数据,其缺点就是就只能两台机器在跑了

    2. 对动态修改、删除和添加新的数据源信息不友好

      目前动态数据源的信息都是存在数据库中,如果要修改、删除和添加数据源信息,那么将通过job定期调整,但是如果需要紧急调整数据源信息,只能重启

    3. 扩展性不太好

      举个例子,我写的动态数据源使用了Hikaricp,如果其他项目使用了其他数据源框架,那么想要改起来比较麻烦。

    想法

    我希望可以设计一套动态数据源模块,可以更好的适用于现有的项目,同时可以轻松将来的扩展,帮助到别人。

    我希望可以做到:

    1. 很好的支持不同的数据源框架,主要是C3P0和Hikaricp(项目中主要使用这两个)
    2. 很好支持多台机器部署的情况
    3. 提供一套很好的UI模板去辅助后端开发人员去开发一套系统运维人员修改、删除和添加数据源信息
    4. 尽可能去降低Spring框架的依赖(目前还是直接使用Spring Boot的技术做扩展吧)
    5. 。。。(等项目遇到了在加)

    而我不想做到的是:

    1. 支持事务,动态数据源的事务管理真的很难,涉及到的数据源越多,难度越大,超过了我的能力
    2. 最低支持Java8,不想兼容Java8以下的版本,但是应该尽可能方便别人通过魔改代码去支持Jdk8以下的版本
    3. 半途而废

    那么现在我想做到的是:在Spring Boot2的基础上实现动态数据源,同时可以支持至少三台机器部署的情况

    总结

    未来很美好,只是需要我们去脚踏实地。

  • 相关阅读:
    asp.net core3.1修改代码以支持windows服务发布
    .NET Core3.1IFreeSql使用FreeSql.Generator自动生成实体类
    西南大学2021年秋《线性代数》参考答案
    西南大学2021年秋形势与政策2 阶段一参考答案
    送给程序员的礼物
    西南大学2021年秋形势与政策2 阶段三参考答案
    拿 M 奖真的那么难吗?这份美赛攻略请收下!
    前端开发必会实战项目,Vue Router 实战来啦!​​
    你喜欢哪款 Linux 桌面?萝莉风?御姐风?
    Python 挑战,你通关了吗?速来看题解!
  • 原文地址:https://www.cnblogs.com/xiao2/p/9074190.html
Copyright © 2011-2022 走看看