通过网盘分享的文件:docker-images
链接: https://pan.baidu.com/s/1qyidkCeGg0O_3odSG5jstA 提取码: sduq
MinlO是一个基于Apache License v2.0开源协议的对象存储服务。兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinlO是一个非常轻量的服务 可以很简单的和其他应用的结合,类似NodeJS, Redis或者MySQL。
MinIO的优点
1、部署简单:一个single二进制文件即是一切,还可以支持各种平台。
2、minio支持海量存储,可按2one打展(原zone不受任何影响),支持单个对象最大5TB;
3、低冗余且磁盘损坏高容忍,标准且最高的数据冗余系数为2(即存储一个1 M的数据对象,实际占用磁盘空间为2M)。但在任意n/2块disk损坏的情况下依然可以读出数据(n为一个纠删码集合(Erasure Coding Set)中的disk数量)。并且这种损坏恢复是基于单个对象的,而不是基于整个存储卷的。
4、读写性能优异
MinIO的基础概念
Object: 存储到的基本对象,如文件、字节流,Anything
Bucket:用来存储Object的逻辑空间。每个Bucket之间的数据是相互隔离的。对于客户端而言,就相当于一个存放文件的顶层文件夹。
Drive: 即存储数据的磁盘,在MinIO启动时,以参数的方式传入。Minio 中所有的对象数据都会存储在Drive里。
Set:即一组Drive的集合,分布式部署根据集群规模自动划分一 个或多个Set, 每个Set中的Drive分布在不同位置。一个对象存储在一个Set 上。(For example: {1..44} is divided into 4 sets each of size 16.)
一个对象存储在一 个Set上
一个集群划分为多个Set
一个Set包含的Drive数显是固定的,默认由系统根据集群规模自动计算得出
一个SET中的Drive尽可能分布在不同的节点上
认识上面这些,就可以简单使用了。
先上docker安装代码
docker run -p 9000:9000 -p 9001:9001 -d --name minio \
--net docker_nightingale \
-v /root/edu/minio/data:/data \
-v /root/edu/minio/config:/root/.minio \
-e "MINIO_ACCESS_KEY=username" \
-e "MINIO_SECRET_KEY=password" \
minio/minio server --console-address ":9001" /data
其中9000是后台端口,9001为控制台端口。装完以后使用9001端口打开是这个样子的,使用username/password登录。
java整合
使用配置文件
pom依赖文件
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.4.3</version>
</dependency>
application.yml文件
minio:
url: 127.0.0.1:9000 #换成自己的minio服务端地址
access-key: username
secret-key: password
bucket-name: bucketname