在了解分布式文件存储之前,我们可以先来了解一下什么是分布式存储,分布式存储的系统又分为哪些

什么是分布式存储

在近些年来,随着各大的互联网公司的大数据应用的崛起,分布式系统被广泛的投入到实践当中。互联网分布式系统与传统的分布式系统区别就是互联网的规模大,成本低。在不同的互联网公司中,会根据自己的需求来设置出合适自己的方案,而分布式系统底层起支撑作用就是分布式存储系统。

分布式存储的四大特征

扩展性:分布式存储可以通过添加机器的方式,使得系统的整体性能得以提升

低成本:低成本:分布式存储系统的自动容错与负载均衡的机制都在机器上

高性能:无论是针对单个服务器还是针对分布式存储群集,分布式存储系统都需要高性能。

易用性:分布式存储系统需要拥有能够对外的接口。

分布式存储系统有好几种,这里主要是对分布式文件系统进行讲解

什么是分布式文件系统

随着现在的互联网时代,数据量呈爆发式增长,所以基本都离不开文件存储。当文件数据越来越多,是用哪个Tomcat或者是nginx虚拟化的静态资源文件在单一服务器节点内是存不下的,那如果用多个节点来存储呢?这显然也是不利于管理和维护的,所以我们需要一个能够管理多台机器节点上的文件数据系统,这就是分布式文件系统。

其实分布式文件系统是一个运行文件通过网络做为介媒在多台机器节点上分析的文件系统,许多台机器的节点组成位一个整体,为用户提供了更多的分享空间。像:xx网盘,其实它们的本质上就是一个分布式的文件存储系统,虽然是一个分布式文件系统,但是对于用户来说,是不可见的。用户使用的时候,就更像是在本地磁盘一样,分布式的文件系统可以提供备份,所以容错率很高!当出现节点宕机时,但是整体的文件服务并没有停止,还是能够为用户系统服务的,数据也不会丢失。

为什么要使用分布式文件系统

使用分布式文件系统能够解决什么问题?

1、海量文件数据存储

2、文件数据的高可用

3、读写性能和负载均衡

分布式文件系统能够存储哪些数据

存储单位从KB、MB、GB、TB、PB到ZB级别的数据

图片、文档、素材静态化页面、长短视频、安装包等等

如何保证一个分布式存储的高性能和高可用呢

1、可以在系统中通过复制协议将数据同步到多个存储节点当中,并且确保在多个副本之间的数据一致性,当某个存储节点出现故障,系统能够自动将服务切换到其他的副本中

2、在分布式的存储当中,其实高性能与高可用是互相矛盾的,比如说要设计一个分布式的存储系统,那么它的CAP定理也可以推断出来。

(1)对性能的考虑,记录数据的时候可以先写一份数据到某台机器上,并且立即返回,然后进行异步发起多个数据被封的过程。这种的设计性能最好,但是也存在了容错性的风险,如果加入返回后,没来得及同步就宕机了,那么数据也就丢失了。

(2)如果同时写多个副本的话,每个副本都写成功以后才返回,这样又会导致性能下降,在这个过程中取决于最慢机器的性能。

那我们如何进行选择呢?

根据业务来定,如果要求性能高,偶尔出现文件丢失或者是访问出错则可以使用异步复制

要求高可用,则就使用同步多写的策略,牺牲一定的性能也要保证高可用数据的一致性

分布式文件存储常见的解决方案

MinIO

是在 Apache License v2.0 下发布的对象存储服务器, 学习成本低,安装运维简单,主流语⾔的客户端整合都有, 号称最强的对象存储⽂件服务器,且可以和容器化技术 docker/k8s等结合,社区活跃但不够成熟,业界参考资料较少

官⽹:https://docs.min.io/cn/

FastDFS

一个开源的轻量级分布式文件系统,比较少的客户端可以整合,目前主要是C和Java客户端,在一些互联网创业公司当中采用的比较多,没有官网文档,社区也不怎么活跃。架构+部署结构复杂,出现问题比较难以定位,可以说是fastdfs零件的组装过程,是需要去理解fastDFS的架构设计才能够正确的安装部署

分布式文件存储Minlo容器化部署

docker容器化部署(体验版~)

docker run -p 9000:9000 \--name minio_xdclass \-v /Users/xdclass/Desktop/test:/data \-e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \-e"MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \minio/minio server /data \
--console-address ":9000" --address ":9090"注意:
账号:AKIAIOSFODNN7EXAMPLE
密码:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
记得开放端口9000

上传文件

输入名称,然后创建

默认支持上传、下载、预览、删除

更多学习笔记课程资料都在wx:xdclass99。添加客服领取

小滴课堂-项目大课学习笔记(2)海量数据存储-分布式文件存储系统相关推荐

  1. 海量数据大课学习笔记(6)-短链平台项目创建+git代码管理+开发分层规范讲解--小滴课堂

    文章目录 前言 第1集 短链平台实战-Maven聚合工程创建微服务项目 第2集 Gitee仓库介绍和项目纳入版本管理+ignore文件配置 第3集 阿里编码规范里面Manager分层介绍-和开发规范说 ...

  2. 海量数据大课学习笔记(2)-不在其位要谋其政,技术Leader能力模型提升-小滴课堂

    文章目录 前言 第1集 互联网大厂里 技术Leader的能力模型-不单写代码 第2集 技术人的产品运营能力提升-竞品分析 第3集 跳出自己的技术思维模型-上司给你团队安排任务 前言 小滴课堂,旨在让编 ...

  3. 海量数据大课学习笔记(12)-账号微服务-阿里云OSS接入实战-小滴课堂

    文章目录 前言 第1集 分布式文件存储业界常见解决方案介绍 第2集 阿里云OSS分布式对象存储介绍开通 第3集 权限知识 RBAC-ACL模式应用之阿里云RAM访问控制 第4集 阿里云OSS客户端SD ...

  4. 海量数据大课学习笔记(5)-阿里云Linux服务器选配和常用中间件环境安装-小滴课堂

    文章目录 前言 第1集 云服务器配置和搭建Docker相关讲解 第2集 云服务器基础设施安装之Mysql8.0+Redis6.X安装 第3集 云服务器基础设施安装之Nacos2.x+Mysql8配置持 ...

  5. 海量数据大课学习笔记(8)-账号微服务注册模块+短信验证码+阿里云OSS开发实战-小滴课堂

    文章目录 前言 第1集 账号微服务注册功能和流程介绍 第2集 第三方短信验证码平台接入申请操作指引 第3集 账号微服务短信验证码发送工具类封装实战 第4集 账号微服务短信验证码发送工具类单元测试 前言 ...

  6. 海量数据大课学习笔记(4)-商⽤短链平台-功能需求介绍和微服务拆分讲解-小滴课堂

    文章目录 前言 第1集 学以致用-商用短链平台需求文档拆分和总结 第2集 商用短链平台-微服务拆分和技术栈版本说明 第3集 商用短链平台-业务架构图讲解 前言 小滴课堂,旨在让编程不在难学,让技术与生 ...

  7. 海量数据大课学习笔记(7)-商用短链平台实战-账号微服务+流量包设计-滴课堂

    文章目录 前言 第1集 账号微服务和流量包数据库表+索引规范讲解<上> 第2集 账号微服务和流量包数据库表+索引规范讲解<下> 第3集 账号微服务-流量包业务模型概念补充 第4 ...

  8. 小滴课堂工业级paas云平台+springcloudAlibaba+JDK11综合项目实战

    二当家小D 讲师: xdclass6 1024电商平台系统实战架构设计和实现需求分析 第1集 1024电商平台业务背景介绍和简历项目编写建议 简介:讲解电商营销中心的业务背景和简历项目编写建议 大课业 ...

  9. 小滴课堂-新版JavaWeb零基础到实战专题课程-9

    目录 前言 第九章 玩转会话跟踪技术Cookie 和 session 第1集 会话跟踪技术之什么是Cookie 第2集 javaweb开发核心之Cookie实战 第3集 Web开发必备知识之Sessi ...

最新文章

  1. python2.7获取当前脚本目录
  2. VS2017 快捷键
  3. java竞拍系统代码,网上拍卖系统的设计与实现(源代码及全套资料).doc
  4. Java基础----对象与类
  5. 计算机应用基础期末考试要点,计算机应用基础期末复习要点.doc
  6. printf sizeof c语言,你可能对 sizeof(i++) 有点误解。。。
  7. 远控免杀专题1---基础篇
  8. 矩阵键盘简易计算机设计报告,矩阵键盘显设计报告..doc
  9. 中国风楼盘房地产海报PSD分层模板来袭,每张都诗情画意
  10. WIN32_FIND_DATA详解
  11. 基于单片机的室内安全环境监测系统的设计
  12. mastercam西门子840d后处理_MasterCAM对西门子802D后置处理
  13. java resourcebundle_Java中使用ResourceBundle访问资源文件(properties文件) | 学步园
  14. scrapy爬虫框架结构
  15. php实现 三角形_HTML纯CSS绘制三角形(各种角度)
  16. go import 导入包名前加下划线 _
  17. 【土旦】 使用Vant 的Uploader 上传图片 重定义返回格式 使用FormData格式提交
  18. iOS 警告 Local declaration of 'XXX' hides instance
  19. facebook分享 whatsapp分享 点击按钮复制链接 常用js分享内容
  20. TunesKit Spotify Converter Mac(Spotify音乐转换工具) v1.5.1激活版

热门文章

  1. 0基础小白学python好学吗-零基础适合学Python吗?小白能否学会Python?
  2. 浮动提示title更改字体大小
  3. mysql 基础入门及单表查询
  4. 2011年最佳入门指南
  5. 想画出你家乡地图吗,来来来!
  6. ActiveMQ原理与入门
  7. csv导入mysql乱码问题
  8. python绘制3d球体网格散点图
  9. Cannot resolve symbol ‘WebServlet‘
  10. js replace 全部替换