V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NiGuAnHeShang
V2EX  ›  程序员

关于一个数据资源管理平台的设计问题。

  •  
  •   NiGuAnHeShang · 317 天前 · 984 次点击
    这是一个创建于 317 天前的主题,其中的信息可能已经有所发展或是发生改变。

    此主题早上发过类似的,根据大佬的建议整理重发!!!

    目前公司有基于芋道源码改了一套框架作为公司的底层框架。现在要在上面开发几个新的功能出来,整合进公司现有的基础平台。

    需要实现的功能有资源管理和应用管理两个功能。目前资源管理(资源主要是数据库:MySQL ,Redis 等)已经了,但是遇到一个新的问题。

    目前想要实现的方式就是可以做一个 spring-boot-starter,引入以后可以直接使用系统资源库中的资源信息。而不需要额为配置数据库配置信息。引入的同时还能对应用进行简单的监控、控制应用的上线情况等。

    功能目标和范围

    1. 资源池管理

    每个租户应该拥有自己独立的数据库。资源池管理包括服务器资源、租户资源的分享与移动、链接资源池管理、资源分配策略、资源监控。

    2. 应用管理

    应用管理用于对每个具体的应用信息进行存储的管理、具体功能包括应用账号管理、应用空间管理、应用状态管理、应用对接信息等。

    3.对外开放标准接口

    对外开放标准接口包括应用账号 验证、数据库资源链接接口、应用程序数据相关接口、应用认证接口等。

    图片

    各位大佬能不能给我一个思路。目前想了几天确实有点打脑壳。

    早上发的问题的链接为: https://v2ex.com/t/1008016#reply8

    再次感谢各位大佬的意见,小弟先谢谢了。

    5 条回复    2024-01-12 17:10:31 +08:00
    NiGuAnHeShang
        1
    NiGuAnHeShang  
    OP
       317 天前
    因为应用管理这个一直卡壳,被说了。。。。
    wuyiccc
        2
    wuyiccc  
       317 天前
    想学习下多租户系统用多数据库进行划分的话是怎么实现的,管理员新建一个租户之后,数据库配置信息存在哪,租户管理端么
    NiGuAnHeShang
        3
    NiGuAnHeShang  
    OP
       317 天前
    @wuyiccc 多租户多数据库的实现思路:
    1.要对所有可用的数据源进行同意管理,访问方式、连接信息等。

    2.创建租户时给租户分配数据源、分配完后生成数据库放入连接信息中就可以了。

    3.具体就是需要写一个 starter 重新实现,重写数据库连接方式(相当于做一个代理,将所有需要连接的数据库管理起来,根据请求的的租户信息进行数据库路由就可以了)

    spring-jdbc 中有个抽象类 **AbstractDataSource**,可以连接一下,我们是基于这个实现的。其他方式也可以使用 mycat+zookeeper 的方式。网上也有现成的: https://github.com/baomidou/dynamic-datasource
    munan56
        4
    munan56  
       317 天前
    有资源管理和应用管理两个功能。
    每个应用的资源应该是标准的。
    是不是写一个 sdk 。根据应用的标识分配一整套就好了。
    NiGuAnHeShang
        5
    NiGuAnHeShang  
    OP
       317 天前
    @munan56
    资源管理里面只有数据库、缓存这些数据存储资源。但是现在想要监控的是程序所在系统的存储空间、cpu 、内存这些功能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2966 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:19 · PVG 21:19 · LAX 05:19 · JFK 08:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.