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

310 天前
 NiGuAnHeShang

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

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

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

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

功能目标和范围

1. 资源池管理

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

2. 应用管理

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

3.对外开放标准接口

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

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

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

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

975 次点击
所在节点    程序员
5 条回复
NiGuAnHeShang
310 天前
因为应用管理这个一直卡壳,被说了。。。。
wuyiccc
310 天前
想学习下多租户系统用多数据库进行划分的话是怎么实现的,管理员新建一个租户之后,数据库配置信息存在哪,租户管理端么
NiGuAnHeShang
310 天前
@wuyiccc 多租户多数据库的实现思路:
1.要对所有可用的数据源进行同意管理,访问方式、连接信息等。

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

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

spring-jdbc 中有个抽象类 **AbstractDataSource**,可以连接一下,我们是基于这个实现的。其他方式也可以使用 mycat+zookeeper 的方式。网上也有现成的: https://github.com/baomidou/dynamic-datasource
munan56
310 天前
有资源管理和应用管理两个功能。
每个应用的资源应该是标准的。
是不是写一个 sdk 。根据应用的标识分配一整套就好了。
NiGuAnHeShang
310 天前
@munan56
资源管理里面只有数据库、缓存这些数据存储资源。但是现在想要监控的是程序所在系统的存储空间、cpu 、内存这些功能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1008123

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX