基于Hbase和SpringBoot的分布式HOS文件存储系统(一)

简介: 基于Hbase和SpringBoot的分布式HOS文件存储系统

核心模块设计思路

数据库建表语句

1. CREATE DATABASE IF NOT EXISTS hos
2. DEFAULT CHARACTER SET UTF8
3. COLLATE UTF8_GENERAL_CI;
4. 
5. USE hos;
6. 
7. --
8. -- Table structure for table `USER_INFO`
9. --
10. DROP TABLE IF EXISTS USER_INFO;
11. 
12. CREATE TABLE USER_INFO
13. (
14.   USER_ID     VARCHAR(32) NOT NULL,
15.   USER_NAME   VARCHAR(32) NOT NULL,
16.   PASSWORD    VARCHAR(64) NOT NULL
17.   COMMENT 'PASSWORD md5',
18.   SYSTEM_ROLE VARCHAR(32) NOT NULL
19.   COMMENT 'ADMIN OR USER',
20.   CREATE_TIME TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
21.   DETAIL      VARCHAR(256),
22. PRIMARY KEY (USER_ID),
23. UNIQUE KEY AK_UQ_USER_NAME (USER_NAME)
24. )
25.   ENGINE = InnoDB
26. DEFAULT CHARSET = utf8
27.   COMMENT = '用户信息';
28. 
29. --
30. -- Table structure for table `TOKEN_INFO`
31. --
32. 
33. DROP TABLE IF EXISTS TOKEN_INFO;
34. 
35. CREATE TABLE TOKEN_INFO
36. (
37.   TOKEN        VARCHAR(32) NOT NULL,
38.   EXPIRE_TIME  INT(11)     NOT NULL,
39.   CREATE_TIME  TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
40.   REFRESH_TIME TIMESTAMP   NOT NULL,
41.   ACTIVE       TINYINT     NOT NULL,
42.   CREATOR      VARCHAR(32) NOT NULL,
43. PRIMARY KEY (TOKEN)
44. )
45.   ENGINE = InnoDB
46. DEFAULT CHARSET = utf8
47.   COMMENT = 'token 信息表';
48. 
49. --
50. -- Table structure for table `HOS_BUCKET`
51. --
52. 
53. DROP TABLE IF EXISTS HOS_BUCKET;
54. 
55. CREATE TABLE HOS_BUCKET (
56.   BUCKET_ID   VARCHAR(32),
57.   BUCKET_NAME VARCHAR(32),
58.   CREATE_TIME TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
59.   DETAIL      VARCHAR(256),
60.   CREATOR     VARCHAR(32) NOT NULL,
61. UNIQUE KEY AK_KEY_BUCKET_NAME(BUCKET_NAME),
62. PRIMARY KEY (BUCKET_ID)
63. )
64.   ENGINE = InnoDB
65. DEFAULT CHARSET = utf8
66.   COMMENT = 'HOS BUCKET';
67. 
68. --
69. -- Table structure for table SERVICE_AUTH
70. --
71. 
72. DROP TABLE IF EXISTS SERVICE_AUTH;
73. 
74. CREATE TABLE SERVICE_AUTH
75. (
76.   BUCKET_NAME  VARCHAR(32) NOT NULL,
77.   TARGET_TOKEN VARCHAR(32) NOT NULL
78.   COMMENT '被授权对象token',
79.   AUTH_TIME    TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP,
80. PRIMARY KEY (BUCKET_NAME, TARGET_TOKEN)
81. )
82.   ENGINE = InnoDB
83. DEFAULT CHARSET = utf8
84.   COMMENT = '对象存储服务授权表';
85.


目录
相关文章
|
XML Java Maven
springboot-多环境配置文件
本文介绍了如何创建开发和生产环境的配置文件,并在IDEA和Maven中进行配置。开发环境中,通过设置profile为`dev`来指定配置文件;生产环境中,使用Maven命令参数`-Pprod`打包并指定配置文件。公共配置可放在`application.yml`中统一管理。日志配置需确保`logback-spring.xml`中的profile正确,以保证日志正常输出。
1290 4
springboot-多环境配置文件
|
10月前
|
NoSQL Java 调度
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
分布式锁是分布式系统中用于同步多节点访问共享资源的机制,防止并发操作带来的冲突。本文介绍了基于Spring Boot和Redis实现分布式锁的技术方案,涵盖锁的获取与释放、Redis配置、服务调度及多实例运行等内容,通过Docker Compose搭建环境,验证了锁的有效性与互斥特性。
874 0
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
|
存储 前端开发 Java
Springboot静态资源映射及文件映射
在Spring Boot项目中,为了解决前端访问后端存储的图片问题,起初尝试通过静态资源映射实现,但发现这种方式仅能访问打包时已存在的文件。对于动态上传的图片(如头像),需采用资源映射配置,将特定路径映射到服务器上的文件夹,确保新上传的图片能即时访问。例如,通过`addResourceHandler("/img/**").addResourceLocations("file:E:\\myProject\\forum_server\\")`配置,使前端可通过URL直接访问图片。
935 0
Springboot静态资源映射及文件映射
|
NoSQL Java Redis
Springboot使用Redis实现分布式锁
通过这些步骤和示例,您可以系统地了解如何在Spring Boot中使用Redis实现分布式锁,并在实际项目中应用。希望这些内容对您的学习和工作有所帮助。
1491 83
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
1591 160
|
存储 Java 文件存储
Spring Boot 3 整合 Minio 实现文件存储
本文介绍了如何使用 Spring Boot 3 整合 MinIO 实现文件存储服务。MinIO 是一款高性能的对象存储服务器,适合大规模数据存储与分析,支持多种部署环境且文档完备、开源免费。从 MinIO 的快速安装、配置文件公开访问,到 Spring Boot 中集成 MinIO 客户端的步骤,包括创建用户访问密钥、引入依赖包、添加配置信息、编写 MinIO 客户端配置类及上传和预览文件的服务代码。最后通过 Apifox 进行文件上传测试,并验证文件是否成功存储及预览功能是否正常。关注公众号“Harry技术”,回复 minio 获取源码地址。
1571 76
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
1144 4
|
存储 Java 文件存储
🗄️Spring Boot 3 整合 MinIO 实现分布式文件存储
本文介绍了如何基于Spring Boot 3和MinIO实现分布式文件存储。随着应用规模扩大,传统的单机文件存储方案难以应对大规模数据和高并发访问,分布式文件存储系统成为更好的选择。文章详细讲解了MinIO的安装、配置及与Spring Boot的整合步骤,包括Docker部署、MinIO控制台操作、Spring Boot项目中的依赖引入、配置类编写及工具类封装等内容。最后通过一个上传头像的接口示例展示了具体的开发和测试过程,强调了将API操作封装成通用工具类以提高代码复用性和可维护性的重要性。
2989 7
🗄️Spring Boot 3 整合 MinIO 实现分布式文件存储
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
587 12
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现