基于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.


相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
19天前
|
缓存 NoSQL Java
Spring Boot中的分布式缓存方案
Spring Boot提供了简便的方式来集成和使用分布式缓存。通过Redis和Memcached等缓存方案,可以显著提升应用的性能和扩展性。合理配置和优化缓存策略,可以有效避免常见的缓存问题,保证系统的稳定性和高效运行。
37 3
|
26天前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
46 6
|
1月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
93 1
SpringBoot获取项目文件的绝对路径和相对路径
|
1月前
|
网络协议 Java
springboot配置hosts文件
springboot配置hosts文件
46 11
|
1月前
|
存储 前端开发 JavaScript
|
1月前
|
存储 Java API
|
1月前
|
Java
SpringBoot获取文件将要上传的IP地址
SpringBoot获取文件将要上传的IP地址
36 0
|
2月前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
40 0
|
2月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
18天前
|
存储 NoSQL Java
使用lock4j-redis-template-spring-boot-starter实现redis分布式锁
通过使用 `lock4j-redis-template-spring-boot-starter`,我们可以轻松实现 Redis 分布式锁,从而解决分布式系统中多个实例并发访问共享资源的问题。合理配置和使用分布式锁,可以有效提高系统的稳定性和数据的一致性。希望本文对你在实际项目中使用 Redis 分布式锁有所帮助。
47 5
下一篇
DataWorks