MinIO,在对象存储这一方面新兴的势头很猛,在我关注的几位up主最近的技术文章关于文件上传下载方面的,技术方案都是以它为基础。而我近几天在对比PostgreSQL和MioIO的作为对象存储的技术方案后,最终选择了MioIO。在此之前,我从未学习过它。
MinIO是一个高性能的开源对象存储服务器,兼容Amazon S3 API。它主要用于存储非结构化数据,如照片、视频、日志文件、备份和容器/虚拟机镜像等。MinIO的设计目标是为开发者和企业提供一个简单、高效、可靠的分布式对象存储解决方案。
MinIO的主要特性包括:
1. 高性能的对象存储服务器:MinIO使用了一种称为"纠删码"的技术,可以在多个服务器上分布和复制数据,从而提供高可用性和高性能。
2. 兼容Amazon S3 API:这意味着你可以用你熟悉的Amazon S3的API和工具来使用MinIO,无需学习新的API。
3. 分布式和纠删码支持:MinIO可以在多个服务器上分布数据,通过数据冗余来提高数据的可靠性和可用性。
4. 多租户架构:MinIO支持多租户架构,可以为每个用户提供独立的空间和权限。
与其他对象存储服务相比,MinIO具有更低的运营成本,更高的性能和更强的扩展性。
类型:PostgreSQL是一个关系型数据库管理系统(RDBMS),而MinIO是一个开源的对象存储服务器。
数据模型:PostgreSQL使用表、行和列的数据模型,适用于结构化数据。而MinIO使用键值对(Key-Value)的数据模型,适用于非结构化数据。
性能:PostgreSQL在处理结构化查询方面具有较高的性能,特别是在复杂查询和事务处理方面。而MinIO在处理大规模非结构化数据存储和访问方面具有较高的性能。
扩展性:PostgreSQL可以通过分片、复制和分区等技术实现水平扩展。而MinIO可以通过添加节点实现水平扩展。
兼容性:PostgreSQL支持多种编程语言和客户端库,如Python、Java、C#等。而MinIO支持多种编程语言和云平台,如Go、Java、AWS等。
安全性:PostgreSQL提供了用户认证、权限管理和审计等功能,以确保数据安全。而MinIO提供了访问控制列表(ACL)、用户认证和加密等功能,以确保数据安全。
成本:PostgreSQL需要购买许可证并支付维护费用。而MinIO是开源的,可以免费使用,但可能需要支付托管服务费用。
具体选择哪项,根据业务系统的需求来和主管定,自己要给出方案来让主管挑。
如果处于学习的目的来了解MioIO,在官网搜索其Windows版本exe文件来放到指定目的,再使用cmd命令行窗口来运行即可,再打开浏览器输入命令行窗口给定的控制台的网址,就能以可视化的方式来操作它。创建一个桶之后(桶可以理解为顶级目录),在可视化工具中对其进行上传文件、下载文件都是很方便的,还可以进行文件夹的操作,甚至,从Windows中拖拽文件进去也能上传。很是方便。
具体的操作步骤,可以在其他博客中找到,本文不再给出。
我认为以下是这两天学习MinIO的沉淀。
1、MinIO在Windows上可以进行单点单实例的运行,这对入门学习是很方便的。还要考虑到,在生产环境中,不会像在Windows中那么简易,生产环境中肯定是分布式的集群部署,所以需要去分布式部署,以应对生产环境的中情况。
2、生产环境是使用K8S、docker容器化、Linux还是mc好,这得找官方文档!我在今天学习了docker的知识。使用docker确实能以简单的方式分布式部署,但是,官方文档给的多点多实例是用的Linux原生部署,没有借助docker、k8s等!所以,官网是最好的知识来源。
3、英语还是很重要的。在看中文版的官网与英文的官网(标准)时,可以得到这样的一个体会:中文版的比英文版的更新的迟。但本人的英文水准有限,所以看英文版的官网有些吃力的。还有就是使用docker hup时,也是看的英文官网。上述二者在不使用翻译插件进行翻译的话,很难自己看懂,如果自己英语好的话,就不用那么费劲了。
接下来我要学习其扩容、容灾等方面的知识。
士贵立志,志不立则无成。