本文主要介绍Minio的分布式环境搭建,安装比较简单,因博主只有一台window,所以使用VM虚拟机搭建的。

搭建前可以先了解下minio:

1、官方文档:https://docs.min.io/cn/minio-erasure-code-quickstart-guide.html

2、Github搭建介绍:https://github.com/minio/minio-service/tree/master/linux-systemd/distributed

环境准备:

1、安装两台centos虚拟机,这里我命名虚拟机为centos-minio1和centos-minio2(这里我使用的centos8.2,博主喜欢啥都用最新的,哈哈)

2、按这个链接https://jingyan.baidu.com/article/046a7b3e61a3e7f9c27fa9a8.html,分别为两台虚拟机添加两块硬盘,我这里仅作测试,所以每块硬盘2G

3、官网下载minio程序包:MINIO SERVER -> X64 -> Download(https://min.io/download#/linux

4、下载minio.service文件(https://github.com/minio/minio-service/tree/master/linux-systemd/distributed

开始搭建:

1、将minio文件放到centos-minio1的目录/usr/local/bin中

2、进入/etc/default/minio目录,新建文件minio(192.168.79.129和192.168.79.130是两台虚拟机的ip,/data/minio1和/data/minio2分别是两台虚拟机的两个挂载磁盘)

# Remote volumes to be used for MinIO server.
MINIO_VOLUMES="http://192.168.79.129:9000/data/minio1/ http://192.168.79.129:9000/data/minio2 http://192.168.79.130:9000/data/minio1 http://192.168.79.130:9000/data/minio2"
# Use if you want to run MinIO on a custom port.
#MINIO_OPTS="--address: 9199"
# Access Key of the server.
MINIO_ACCESS_KEY=yhc
# Secret key of the server.
MINIO_SECRET_KEY=12345678

3、进入/etc/systemd/system/目录,复制minio.service文件到此文件夹,并编辑文件

找到User和Group配置项,都修改为root(因为我用的root用户运行minio,所以此处需要root用户),然后注释掉Restart=always(不然启动报错会一直自动重启,第二次重启会报错,大意是两次启动间隔时间过快)

4、关闭centos-minio1和centos-minnio2的防火墙,不然会报错,大意是一直等待另外两块硬盘加载

5、执行命令 systemctl enable minio.service,允许minio启动

6、启动minio,执行命令systemctl restart minio.service

7、查看minio运行状态和日志,执行命令systemctl status minio.service,如下则代表启动成功

8、nginx配置

9、验证后管,浏览器输入http://localhost:8088/minio,若出现登录界面则成功,账号是上面步骤2配置的MINIO_ACCESS_KEY和MINIO_SECRET_KEY

10、验证服务,引入依赖,编写测试类(测试类注释部分为minio3.x版本的代码,后升级为7.1.4,所以注释了)

<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.1.4</version>
</dependency>

package com.yhc.minio;

import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import io.minio.errors.MinioException; import java.io.FileInputStream; public class Test { public final static String buckey_name = "yhc";
public final static String file_name = "japidocs-demo-20200909.1138.jar";
public final static String file_path = "C:\\Users\\Administrator\\Desktop\\"+file_name; public static void main(String[] args) {
try(FileInputStream fis = new FileInputStream(file_path);) {
// 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
// MinioClient minioClient = new MinioClient("http://192.168.79.129:9000", "yhc", "12345678");
MinioClient minioClient = MinioClient.builder().endpoint("http://localhost:8088/").credentials("yhc","12345678").build();
// 检查存储桶是否已经存在
// boolean isExist = minioClient.bucketExists(buckey_name);
boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(buckey_name).build());
if (isExist) {
System.out.println("Bucket already exists.");
} else {
// 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
// minioClient.makeBucket(buckey_name); minioClient.makeBucket(MakeBucketArgs.builder().bucket(buckey_name).build());
} // 使用putObject上传一个文件到存储桶中。
// minioClient.putObject(buckey_name, "data.xls", "C:\\Users\\Administrator\\Desktop\\data.xls"); minioClient.putObject(PutObjectArgs.builder().object(file_name).bucket(buckey_name).stream(fis,fis.available(),5*1024*1024).build());
System.out.println("sucess");
} catch (MinioException me) {
me.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}

11、执行测试类,检查minio文件存储,发现每个硬盘下都有对应文件的文件夹,并按纠删码规则存储

至此,minio服务搭建完毕,因博主是在搭建完成后写的此文章,所以有些遗漏如大家发现,还请联系本人,谢谢。

搭建Minio分布式服务的更多相关文章

  1. SpringBoot + Dubbo + zookeeper 搭建简单分布式服务

    SpringBoot + Dubbo + zookeeper 搭建简单分布式服务 详细操作及源码见: https://github.com/BillyYangOne/dubbo-springboot

  2. MinIO 分布式集群搭建

    MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障. Minio 分布式模式可 ...

  3. 利用 MinIO 轻松搭建静态资源服务

    目录 1 引言 2 MinIO 简介 3 MinIO 运行与静态资源使用 3.1 MinIO 获取 3.2 MinIO 启动与运行 3.2.1 前台简单启动 3.2.2 后台指定参数运行 3.2.3 ...

  4. 超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务

    来自:JavaGuide Github 地址:https://github.com/Snailclimb/springboot-integration-examples 目录: 使用 SpringBo ...

  5. 使用 SpringBoot+Dubbo 搭建一个简单分布式服务

    实战之前,先来看几个重要的概念 开始实战之前,我们先来简单的了解一下这样几个概念:Dubbo.RPC.分布式.由于本文的目的是带大家使用SpringBoot+Dubbo 搭建一个简单的分布式服务,所以 ...

  6. 使用containerd搭建MinIO集群服务

    概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用containerd的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 REL ...

  7. 使用Docker搭建MinIO集群服务

    概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用Docker的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 RELEASE ...

  8. 【分布式】-- 基于Nacos、OpenFeign搭建的微服务抽奖系统后台小案例

    1.项目介绍 最近入项目之前要求熟悉一下SpringCloud Nacos微服务基于Feign接口调用并整合Swagger2进行接口文档展示给前端,所以自己按照要求来编写并整合了一套基于SpringC ...

  9. 第2-3-2章 环境搭建-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5. 文件服务开发 5.1 环境搭建 5.1.1 数据库环境搭建 5.1.2 Nacos环境搭建 5.1.3 Nginx环境搭建 5.1.4 maven工程环境搭建 5. 文件服务开发 全套代码 ...

  10. 三、Linux部署MinIO分布式集群

    MinIO的官方网站非常详细,以下只是本人学习过程的整理 一.MinIO的基本概念 二.Windows安装与简单使用MinIO 三.Linux部署MinIO分布式集群 四.C#简单操作MinIO 一. ...

随机推荐

  1. 由C# yield return引发的思考

    前言 当我们编写 C# 代码时,经常需要处理大量的数据集合.在传统的方式中,我们往往需要先将整个数据集合加载到内存中,然后再进行操作.但是如果数据集合非常大,这种方式就会导致内存占用过高,甚至可能导致 ...

  2. JuiceFS 社区版 v1.1- Beta 发布,新增五个实用功能

    我们很高兴地宣布 JuiceFS v1.1-Beta 版本正式发布啦!这是一个功能丰富的版本,带来了许多实用的新功能和改进.在这个版本中我们新增了以下功能: 目录配额:为目录设置配额限制,控制其大小和 ...

  3. 【园子资深博主直播】 冰蓝老师《ChatGPT 初探》

    AI对经济增长.经济周期.经济形态.社会就业都有着非常巨大的影响,ChatGPT4.0发布后,燃起了我们每一个开发人的激情和恐惧,但各路自媒体信息杂乱无序,缺少非常系统性的ChatGPT原理解读. 此 ...

  4. SpringBoot集成支付宝 - 少走弯路就看这篇

    最近在做一个网站,后端采用了SpringBoot,需要集成支付宝进行线上支付,在这个过程中研究了大量支付宝的集成资料,也走了一些弯路,现在总结出来,相信你读完也能轻松集成支付宝支付. 在开始集成支付宝 ...

  5. 分享6个SQL小技巧

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 经常有小哥发出疑问,SQL还能这么写?我经常笑着回应,SQL确实可以这么写.其实SQL学起来简单,用起来也 ...

  6. JavaWeb之Servlet详解(以及浏览器调用 Servlet 流程分析图)

    Servlet 1.什么是Servlet Servlet(java 服务器小程序) 他是由服务器端调用和执行的(一句话:是Tomcat解析和执行) 他是用java语言编写的, 本质就是Java类 他是 ...

  7. 数据库中的可视化和探索性:MongoDB的数据可视化和探索性工具

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...

  8. WPF 项目使用 Grpc.Tools

    1 WPF 项目使用 Grpc.Tools 1.1 方法一 把 proto 文件和 Grpc.Tools 单独建一个类库项目,WPF 项目引用这个类库项目. 解决 Grpc.Tools 自动生成的 C ...

  9. 基于词袋(Bag of Words)和SVM的图片分类

    目录 摘要 源码及完整报告: 词袋(Bag of Words, BoW) 基于词袋模型的图片分类基本流程 多尺度空间极值点检测 关键点精确定位 关键点主方向计算 生成描述子 特征词典的生成 SVM分类 ...

  10. GO web学习(三)

    跟着b站https://space.bilibili.com/361469957 杨旭老师学习做的笔记 路由 Controller / Router 角色 main():设置类工作 controlle ...