当前位置:   article > 正文

01.minio基本介绍搭建使用_minio 对接

minio 对接

MinIO 是一款基于 Go 语言的高性能、可扩展、云原生支持、操作简单、开源的分布式对象存储产品。

官网:https://min.io/

特点

  • 高性能:作为高性能对象存储,在标准硬件条件下它能达到55GB/s的读、35GG/s的写速率

  • 可扩容:不同MinIO集群可以组成联邦,并形成一个全局的命名空间,并跨越多个数据中心

  • 云原生:容器化、基于K8S的编排、多租户支持

  • Amazon S3兼容:Minio使用Amazon S3 v2 / v4 API。可以使用Minio SDK,Minio Client,AWS SDK和AWS CLI访问Minio服务器。

  • 可对接后端存储: 除了Minio自己的文件系统,还支持DAS、 JBODs、NAS、Google云存储和Azure Blob存储。

  • SDK支持: 基于Minio轻量的特点,它得到类似Java、Python或Go等语言的sdk支持

  • Lambda计算: Minio服务器通过其兼容AWS SNS / SQS的事件通知服务触发Lambda功能。支持的目标是消息队列,如Kafka,NATS,AMQP,MQTT,Webhooks以及Elasticsearch,Redis,Postgres和MySQL等数据库。

  • 有操作页面

  • 功能简单: 这一设计原则让MinIO不容易出错、更快启动

  • 支持纠删码:MinIO使用纠删码,在最高冗余度配置下,即使丢失1/2的磁盘也能恢复数据

相关名词概念

Object:存储到minio的基本对象,如文件,字节流等。

Bucket(桶):用来存储Object的逻辑空间。每个Bucket之间的数据是互相隔离的。对于客户端而言,就相当于存放文件的顶层文件夹。

Drlve(驱动器):存储数据的磁盘,在MinIO启动时,以参数的方式传入。MinIO中所有的对象数据都会存在Drive里。

Set:即一组 Drive的集合,分布式部署根据集群规模自动划分一个或者多个Set,每个Set中的Drive 分布在不同位置。一个对象存储在一个Set上。

环境部署

服务端下载地址:https://dl.min.io/server/minio/release/

版本更新日志:https://github.com/minio/minio/releases

mc是客户端,提供了类似 unix 的命令去操作服务端,从https://dl.min.io/client/mc/release/按需下载

首先下载minio服务端,进入上面的地址,根据系统版本按需选择需要下载的服务端,minio是linux需要的,minio.exe是windows需要的。

服务搭建的方式有以下三种,本文只说前两种。

  • 单节点单驱动器

  • 单节点多驱动器

  • 多节点多驱动器(分布式)

Linux搭建

这里展示单节点单驱动器的做法,然后部署成systemctl管理的服务。

先创建目录minio-server

mkdir minio-server

将下好的minio文件放进去,

进入目录创建run.bat文件

vim run.sh

写入启动minio命令

  1. #!/bin/bash
  2. #设置登录账号和密码,控制台登录和api调用都是同一个
  3. export MINIO_ROOT_USER=admin
  4. #密码最短9
  5. export MINIO_ROOT_PASSWORD=930926134
  6. #命令启动,这里是在后台运行,9001是api对应端口,9000是控制台页面对应端口,host是127.0.0.1,日志输出在当前目录下minio.log,数据是保存当前目录的data目录下
  7. nohup ./minio server
  8. --address ":9001"
  9. --console-address ":9000"
  10. ./data >./minio.log 2>&1 & \

增加可执行权限

chmod +x run.sh

到这里可以先 ./run.sh 运行试试看,是否正常启动

启动后输出日志和创建了data目录

部署成服务,先创建minio.service

  1. cd /etc/systemd/system/
  2. vim minio.service

写入相关设置参数

  1. [Unit]
  2. Description=Minio service
  3. Documentation=https://docs.minio.io/
  4. [Service]
  5. Type=forking
  6. WorkingDirectory=/root/application/minio-2022-11-18/
  7. ExecStart=/root/application/minio-2022-11-18/run.sh
  8. ExecStop=/bin/kill -s QUIT $MAINPID
  9. Restart=on-failure
  10. RestartSec=5
  11. [Install]
  12. WantedBy=multi-user.target
  13. [Unit]
  14. Description=minio server
  15. Documentation=minio
  16. After=network.target remote-fs.target nss-lookup.target

刷新配置

systemctl daemon-reload

然后就可以通过systemctl来管理minio了

Windows搭建

这里展示单节点多驱动器的做法,先在minio.exe所在目录创建startMinio.bat文件,写入以下内容,和linux的启动命令差不多,这里指定了两个目录作为两个驱动器

  1. set MINIO_ROOT_USER=admin
  2. set MINIO_ROOT_PASSWORD=123456789
  3. minio.exe server --console-address :9090 --address :9000 D:/minioData/data1 D:/minioData/data2

双击bat脚本启动后会打印一些日志,窗口不能关闭,相当于这就是服务了

现在本地浏览器访问 http://127.0.0.1:9090 输入账号密码即可进入控制台界面,控制台的操作可以自行研究,因为是可视化界面操作,比较简单,就不过多描述了。

具体使用

这里以java为例,包括后续都使用java作为开发语言。

minio的使用还是比较简单的,先导入minio的客户端依赖

  1. // maven
  2. <dependency>
  3. <groupId>io.minio</groupId>
  4. <artifactId>minio</artifactId>
  5. <version>8.4.6</version>
  6. </dependency>
  7. // gradle
  8. implementation 'io.minio:minio:8.4.6'

然后如下创建一个连接minio服务的客户端实例就可以开始操作了

  1. import io.minio.*;
  2. public class FileUploader {
  3. public static void main(String[] args) {
  4. try {
  5. // 创建客户端
  6. MinioClient minioClient =
  7. MinioClient.builder()
  8. // api地址
  9. .endpoint("http://127.0.0.1:9000")
  10. // 前面设置的账号密码
  11. .credentials("admin", "123456789")
  12. .build();
  13. // 检查桶是否存在
  14. boolean found =
  15. minioClient.bucketExists(BucketExistsArgs.builder().bucket("testdir").build());
  16. if (!found) {
  17. // 创建桶
  18. minioClient.makeBucket(MakeBucketArgs.builder().bucket("testdir").build());
  19. }
  20. System.out.println("开始你的操作");
  21. } catch (Exception e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. }

这里只举例了验证桶存在与否和创建桶的方法,桶就相当于文件夹,其他方法可以参考官方API文档:https://min.io/docs/minio/linux/developers/java/API.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/554350
推荐阅读
相关标签
  

闽ICP备14008679号