object storage system

reghao 6c222e5b42 dubbo 版本升级到 3.3.0 пре 11 месеци
oss-api edfd8404ef 将 oss-api 中涉及到第三方调用的 model 放到 oss-sdk 中, 对第三方不暴露 oss-api пре 1 година
oss-media edfd8404ef 将 oss-api 中涉及到第三方调用的 model 放到 oss-sdk 中, 对第三方不暴露 oss-api пре 1 година
oss-sdk f6f049dabe ObjectInfo 添加 sha256sum 字段 пре 1 година
oss-store 6c222e5b42 dubbo 版本升级到 3.3.0 пре 11 месеци
zzz ef135967af 更新脚本 пре 1 година
.gitignore 00e29c059b 更新日志配置 пре 2 година
README.md cc93447e17 更新 README.md пре 1 година
pom.xml a3a74c61c5 添加一个 oss-media 模块, 用于处理 oss 中存储文件的信息 пре 1 година

README.md

oss

一个文件存储系统, 提供文件的存储, 访问和删除等服务, 不支持文件修改.

依赖

  • os:Linux
  • jdk:11
  • maven:3.9
  • mysql:5.7

模块

oss 项目模块:

  • oss-api
  • oss-sdk > 可看作 oss 的 client, 第三方使用引入此包可对 oss 中的数据进行操作 > > 和 aliyun-oss-java-sdk 类似
  • oss-store > 监听 4010 HTTP 端口和 14010 RPC 端口 > > 存储节点
  • oss-console > 监听 4030 HTTP 端口和 14030 RPC 端口 > > 管理存储节点 > > 本模块由 bnt 项目实现

console 和 store

oss-console 和 oss-store 之间的关系如下图所示:

store 和 console 之间使用 dubbo rpc 进行通信

每台作为存储节点的机器上都需要且只能一个部署 store 实例

在 store 的配置文件中指定 mgr 的地址

只能部署一个 console 实例

构建部署

pull 项目源码

cd ~/Downloads
git clone https://git.reghao.cn/reghao/oss.git

初始化 MySQL

cd ~/Downloads/oss/zzz
bash db_init.sh

执行 db_init.sh 会自动创建 oss 项目需要的数据库并初始化数据库表

需要自行指定 db_init.sh 脚本中的 host, username, password 等变量值

构建并运行

cd ~/Downloads/oss/zzz
bash build_jar.sh

执行 db_init.sh 会自动构建并运行 oss-store 应用 jar 包

build_jar.sh 脚本中的 proj_dir 变量默认是 ~/Downloads/oss

mvn 构建默认使用 dev 环境, 所以需要修改 oss-store 应用 resources/application-dev.yml 配置文件中的第三方服务配置

运行 oss-store 应用前需要根据环境修改 oss/oss-store/bin/oss.yml 文件中的配置

mysql 配置

server.tomcat.basedir

tomcat 服务器使用的临时目录, 不应将此目录设置到文件存储所在的磁盘

oss.storeHost

oss-store 所部署机器的 IP 地址

oss.storeDirs

存储文件使用的位置, 每个位置都必须是一块独立的磁盘, 推荐将单块磁盘挂载到此位置

oss.consoleHost

bnt 所部署机器的 IP 地址

默认执行 oss/oss-store/bin 目录中的 start.sh 脚本, 此时使用 oss.yml 配置文件

如果要使用 resources/application-dev.yml 配置文件, 则执行 start1.sh 脚本

停止应用

cd ~/Downloads/oss/oss-store/bin
bash shutdown.sh

执行 db_init.sh 会结束 oss-store 应用

其他依赖

oss-store 应用强依赖 oss-console, 必须先启动 oss-console 后再启动 oss-store

oss-console 即 bnt 项目