分布式文件存储库MinIO可还行?
在传统的单体应用架构中,一个应用程序对应一台服务器,提供单进程服务。
但是随着业务的升级,技术的更新迭代,分布式、集群架构、微服务等现已俨然成为主流。
几乎所有的项目都会与文件挂钩,例如OA系统的报表文件,电商系统的商品图片等等...
我们来看一下传统的(单体应用)文件存储与读取方式
一台主机对于N个客户端,如果是小项目还好,稍微大点的项目,服务器分分钟崩溃
进而演进为分布式架构
将每一个大的模块进行拆分,以前单进程支撑的系统现在多进程协同。将文件操作也进行剥离,部署到不同的服务器进行维护,各司其职,减轻不同模块服务器的压力.
话又说回来了,怎样实现呢?
这里的话我主要说一下分布式文件的存储服务MinIO。当然还有其他的一些中间件及工具,大家随意即可。
首先介绍一下MinIO,MinIO是一款高性能的对象资源存储库,而且自身很轻量。
GitHub上start数已经有20多K了
https://github.com/minio
而且MinIO支持多种语言,也提供了丰富的API.
OK!现在要动手了。
用它肯定要先安装它,我本次操作在Linux下。
首先在Docker中拉取一个镜像并运行
docker pull minio/minio
docker run -p : minio/minio server /data
它会分配给你密钥,用作登录。这个密钥在后续项目中也会用到。
在浏览器中输入ip:port如果正常显示,就证明你安装成功了。如下:
我们可以点击加号,创建一个桶(文件夹)
注意文件夹的名称不能大写
我们可以上传一张图片
找到它的链接就可以在浏览器中访问了
接下来在代码中进行CRUD了
分布式文件存储库MinIO可还行?的更多相关文章
- 2.1、CDH 搭建Hadoop在安装(为Cloudera Manager配置存储库)
步骤1:为Cloudera Manager配置存储库 使用包管理工具安装Cloudera Manager yum 对于RHEL兼容系统, zypper对于SLES,和 apt-get对于Ubuntu. ...
- git 从存储库中删除敏感数据(删除文件历史)
1.如果您的历史记录中还没有包含敏感数据的存储库的本地副本,请将存储库克隆到本地计算机. git clone https://github.com/YOUR-USERNAME/YOUR-REPOSIT ...
- 使用git将本地文件提交到github存储库
1.首先你要安装git https://git-for-windows.github.io/ 去官网自行下载对应版本 2.安装好git服务器后,找到你项目的文件夹,右键git bash here打开命 ...
- 94、存储库之MongoDB、mysql
本篇导航: 简介 MongoDB基础知识 安装 基本数据类型 CRUD操作 其它 存储库之mysql 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库1.易用性 MongoDB是 ...
- 存储库之MongoDB、mysql
本篇导航: 简介 MongoDB基础知识 安装 基本数据类型 CRUD操作 其它 存储库之mysql 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库1.易用性 MongoDB是 ...
- JDFS:一款分布式文件管理系统,第五篇(整体架构描述)
一 前言 截止到目前为止,虽然并不完美,但是JDFS已经初步具备了完整的分布式文件管理功能了,包括:文件的冗余存储.文件元信息的查询.文件的下载.文件的删除等.本文将对JDFS做一个总体的介绍,主要是 ...
- g4e基础篇#4 了解Git存储库(Repo)
章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 了解Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git ...
- MooseFS分布式文件系统介绍及安装教程详解
MFS系统由4个部分构成:master.metalogger.chunkserver.client. 1.Master —— mfs的大脑,记录着管理信息,比如:文件大小,存储的位置,份数等,和inn ...
- 微软并发Key-Value存储库FASTER介绍
微软支持并发的Key-Value 存储库有C++与C#两个版本.号称迄今为止最快的并发键值存储.下面是C#版本翻译: FASTER C#可在.NET Framework和.NET Core中运行,并且 ...
随机推荐
- redis管道操作(事务),无回滚
管道:将数据操作放在内存中,只有成功后,才会一次性全部放入redis #管道(事务),要是都成功则成功,失败一个全部失败 #原理:将数据操作放在内存中,只有成功后,才会一次性全部放入redis pip ...
- 对JavaScript中的this的理解
什么是this: 解析器(就是浏览器)在调用函数时,每次都会向函数内部传递两个隐含的参数: 这两个隐含参数其中一个就是this(还有一个是arguments,用来接收函数的实参),this指向的是一个 ...
- Jmeter:运行报:Error occurred starting thread group :线程组, error message:Invalid duration 0 set in Thread Group:线程组, see log file for more details
最近在用jmeter做压测,上周五压测的脚本,今天早晨结束后. 点击同样的脚本,运行就报Error occurred starting thread group :线程组, error message ...
- phpstorm破解版
查看下载:https://www.7down.com/soft/229568.html 破解:https://www.7down.com/article/305640.html 主题更换和下载:htt ...
- 数组的forEach和map和for方法的区别
一.定义 foreach(): 从头到尾遍历数组,为每个元素调用指定的函数. map(): 将调用的数组的每个元素传递给指定的函数,并返回一个数组,他包含该函数的返回值. 传递的函数是 forea ...
- DEDE中自定义表单HTML 怎么写
用DEDE嵌套网站时,有时我们需要添加自定义字段,而自定义字段的HTML样式如何设置呢? 功能地图(核心/频道模型/内容模型管理/)——普通文章的修改——字段管理——你的自定义字段的修改——最下面自定 ...
- udp协议与tcp协议
TCP协议与UDP协议支持的应用协议 TCP支持的应用协议主要有:Telnet.FTP.SMTP等: UDP支持的应用层协议主要有:NFS(网络文件系统).SNMP(简单网络管理协议).DNS(主域名 ...
- Task Scheduler API Error 80041318
https://stackoverflow.com/questions/42307917/task-scheduler-api-error-80041318/42462235#42462235 Hi ...
- [Qt] 去除窗体右上角的问号
this->setWindowFlags(windowFlags()&~Qt::WindowContextHelpButtonHint);
- mac OS 安装配置 Tomcat
Apache Tomcat官网 http://tomcat.apache.org/ 选择一个版本 本文以tomcat 9为例 选择Mac OS 对应的压缩包下载 把文件解压然后 在主用户里新建一个目 ...