【minio】第一章--简介
关于minio,我之前写过一个预告,大家可以简单看一下。
书接上文。
minio是基于Apache License的分布式对象存储服务。兼容Amazon S3云存储接口(S3后面的章节会详细讲)。适合存储非结构化数据,如图片,音频,视频,日志,对象最大可达5TB。
在如今的时代,各种业务都避免不了查看图片,视频,以及文件的上传下载。传统开发中,我们常使用tomcat类似的服务器进行映射目录实现资源访问,非常不方便。所以各大互联网都需要搭建自己的对象存储服务,minio就是如今时代的最佳选择。minio还提供了java客户端和接口供我们使用,非常方便。
基础概念:
- Object:存储到minio的基本对象。如文件,字节流
- Bucket:存储Object的逻辑空间,每个Bucket之间的数据是相互隔离的。对于用户而言,相当于存放文件的顶层文件夹
- Drive:存储Object的磁盘。在minio启动时,以参数的方式传入
- Set:一组Drive的集合。根据集群规模自动划分Set,每个Set中的Drive分布在不同位置
优点:
- 兼容 Amazon S3
MinIO 使用 Amazon S3 v2 / v4 API。可以使用 MinIO SDK,MinIO Client,AWS SDK 和 AWS CLI 访问 MinIO 服务器。
- 数据保护
MinIO 使用 Minio Erasure Code 来防止硬件故障。也许会损坏一半以上的 driver,但是仍然可以从中恢复。其实就是通过数学计算,把丢失的数据进行还原,他可以将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。既如果有任意小于等于m份的数据失效,仍然能通过剩下的数据还原出来。
- 高可用
MinIO 服务器可以容忍分布式设置中高达(N / 2)-1 节点故障。而且,您可以配置 MinIO 服务器在 MinIO 与任意 Amazon S3 兼容服务器之间存储数据。
- lambda计算
MinIO 服务器通过其兼容 AWS SNS / SQS 的事件通知服务触发 Lambda 功能。支持的目标是消息队列,如 Kafka,NATS,AMQP,MQTT,Webhooks 以及 Elasticsearch,Redis,Postgres 和 MySQL 等数据库。
这里并没有细细讲解这些优点,计划将于高级特征中详细给大家讲解一下这些优点,也是minio的部分高级特征。
应用场景:
- 电商网站:存储海量商品图片
- 视频网站:存储视频
- 网盘:文件存储
- 社交网站:存储聊天图片
- 日志系统:存储日志