目前公司有基于芋道源码改了一套框架作为公司的底层框架。现在要在上面开发几个新的功能出来,整合进公司现有的基础平台。
需要实现的功能有资源管理和应用管理两个功能。目前资源管理(资源主要是数据库:MySQL ,Redis 等)已经了,但是遇到一个新的问题。
目前想要实现的方式就是可以做一个 spring-boot-starter,引入以后可以直接使用系统资源库中的资源信息。而不需要额为配置数据库配置信息。引入的同时还能对应用进行简单的监控、控制应用的上线情况等。
每个租户应该拥有自己独立的数据库。资源池管理包括服务器资源、租户资源的分享与移动、链接资源池管理、资源分配策略、资源监控。
应用管理用于对每个具体的应用信息进行存储的管理、具体功能包括应用账号管理、应用空间管理、应用状态管理、应用对接信息等。
对外开放标准接口包括应用账号 验证、数据库资源链接接口、应用程序数据相关接口、应用认证接口等。
早上发的问题的链接为: https://v2ex.com/t/1008016#reply8 。
再次感谢各位大佬的意见,小弟先谢谢了。
1
NiGuAnHeShang OP 因为应用管理这个一直卡壳,被说了。。。。
|
2
wuyiccc 341 天前
想学习下多租户系统用多数据库进行划分的话是怎么实现的,管理员新建一个租户之后,数据库配置信息存在哪,租户管理端么
|
3
NiGuAnHeShang OP @wuyiccc 多租户多数据库的实现思路:
1.要对所有可用的数据源进行同意管理,访问方式、连接信息等。 2.创建租户时给租户分配数据源、分配完后生成数据库放入连接信息中就可以了。 3.具体就是需要写一个 starter 重新实现,重写数据库连接方式(相当于做一个代理,将所有需要连接的数据库管理起来,根据请求的的租户信息进行数据库路由就可以了) spring-jdbc 中有个抽象类 **AbstractDataSource**,可以连接一下,我们是基于这个实现的。其他方式也可以使用 mycat+zookeeper 的方式。网上也有现成的: https://github.com/baomidou/dynamic-datasource |
4
munan56 341 天前
有资源管理和应用管理两个功能。
每个应用的资源应该是标准的。 是不是写一个 sdk 。根据应用的标识分配一整套就好了。 |
5
NiGuAnHeShang OP @munan56
资源管理里面只有数据库、缓存这些数据存储资源。但是现在想要监控的是程序所在系统的存储空间、cpu 、内存这些功能。 |