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 项目实现
oss-console 和 oss-store 之间的关系如下图所示:

store 和 console 之间使用 dubbo rpc 进行通信
每台作为存储节点的机器上都需要且只能一个部署 store 实例
在 store 的配置文件中指定 mgr 的地址
只能部署一个 console 实例
初始化 MySQL
- 1.oss/zzz/oss_init.sql 文件是系统的初始数据
- 2.执行 oss/zzz/init_schema.sh 脚本可完成数据库的创建和初始化
> 需要自行指定脚本中的 host, username, password, db 等变量值
- 3.然后可以开始构建和部署系统
构建
根据需要构建的类型使用 wget 获取构建脚本:
# 构建 jar 包使用此脚本
wget https://git.reghao.cn/reghao/oss/raw/master/zzz/build_jar.sh
# 构建 docker 镜像使用此脚本
wget https://git.reghao.cn/reghao/oss/raw/master/zzz/build_image.sh
- 1.修改构建脚本中的 base_dir 变量的值
- 2.执行构建脚本
- 3.构建完成
> 如果使用 build_jar.sh 脚本构建, 生成的 jar 包会存放在 oss/oss-store/bin 目录中
>
> 如果使用 build_image.sh 脚本构建, 生成的镜像则使用 docker images | grep 'oss-store' 命令查看
部署
oss-store 应用强依赖 oss-console, 必须先启动 oss-console 后再启动 oss-store
jar 包
部署 oss-store 流程:
- 1.修改 oss/oss-store/bin/oss.yml 文件中的配置
> mysql 配置
>
> server.tomcat.basedir
> > tomcat 服务器使用的临时目录, 不应将此目录设置到文件存储所在的磁盘
>
> oss.storeHost
> > oss-store 所部署机器的 IP 地址
>
> oss.diskDirs
> > 存储文件使用的位置, 每个位置都必须是一块独立的磁盘, 推荐将单块磁盘挂载到此位置
> >
>
> oss.consoleHost
> > oss-console 所部署机器的 IP 地址
>
- 2.使用 cd 命令切换到 oss/oss-store/bin 目录
- 3.执行 start1.sh 脚本
> 如果不使用 oss.yml 配置, 则执行 start2.sh 脚本
docker 镜像
docker run -d --name=bntweb --network=host \
-v /opt/disk/1:/opt/disk/1 \
reghao/oss-store:12345678
自行指定生成的 image
image 格式是 REPOSITORY:TAG
使用 -v 将 host 目录挂载到容器目录
docker 镜像使用 resources/application-test.yml 配置