adfs3.0单点登录 分布式文件系统FastDFS如何做到高可用?
分布式文件系统FastDFS如何做到高可用?
大家好我是数据僧,下面是我对这个问题的理解,不对之处还望不当之处。
什么是高可用?通俗的解释讲是在任何异常情况下,系统仍然能都正常提供服务。最好不要减轻系统不用下时间,以增加系统的后用时间。大部分明确的年用些时间99.99为标准。摊下来到每月都有不和用时间在几十分钟内。怎么你做到高可用?1,系统设计上以免建议使用单点。2,自动启动故障转移。我们下面来看看FastDFS是如何能你做到这两点的。实际下图来打听一下下FastDFS的架构。
Trackerserver要注意作用是负载均衡和调度,通过Trackerserver在文件上传时可以不依据一些策略找不到Storageserver需要提供文件上传服务。Trackerserver可以不由一台或者N台服务器混编。是可以完全增加的或登陆游戏不可能影响线上服务,而可以不依据线上服务器的压力情况一旦提高或者减少。
Tracker专门负责管理的管理Storage和group。每个storage会去连结Tracker,并切报告自己隶属的group等信息,并尽量和Tracker周期性的心跳。tracker据storage的心跳信息确立group-storageserverlist的映射表。所有的元信息大多,都存储在内存中。这样因而Tracker太太容易扩展。
Storageserver:是可以称做存储服务器。客户端本地上传的文件结果存储文件在Storage服务器上,Storageserver没有实现自己的文件系统而是用来操作系统的文件系统来管理方面文件。存储系统由一个或多个组横列,组与组之间的文件是互相独立的,所有组的文件容量累加是整个存储系统中的文件容量。
文件上传流程
1,Client想上传图片,它先向Tracker进行询问,Tracker查看下登记相关信息之后,告知Client哪个storage当前空闲,Tracker会把IP和端口号都赶往给Client,Client在搞到IP和端口号之后,便不再必须是从Tracker,再便向Storage并且上传图片,Storage在保存图片的同时,会向Tracker并且汇报,告知Tracker它当前是否是还留有剩余空间,以及残余空间大小。做了汇报完之后,Storage将服务器上存储图片的地址赶往给Client,Client可以拿着这个地址进行访问图片。
我们来了解下文件索引信息。要注意除了:组名,虚拟磁盘路径,数据两级目录,文件名。追加所示:
我们来看一下文件索引的具体详细解释和组成部分:
组名:文件上传后原先的storage组名称,在文件上传最终后由storage服务器回,必须客户端无法存放。
虚拟充值磁盘路径:storage配置的虚拟店路径,与磁盘选项store_path*对应。要是配置好不好了store_path0则是M00,如果没有电脑配置了store_path1则是M01,以此类推。
数据两级目录:storage服务器在每个虚拟物品磁盘路径下创建家族的两级目录,主要是用于存储数据文件。文件名:与文件上传时差别。是由存储服务器依据特定的事件信息生成沉淀,
文件名包涵:源存储服务器IP地址、文件创建角色时间戳、文件大小、随机数和文件拓展名等信息
文件下载流程
如图1FastDFS直接下载的时序图
图解:
Storage Server启动时后会主动去连结TrackerServer,周期性向Tracker Server邮箱里心跳。
然后再client去问tracker下载文件的storage,参数为文件标识(组名和文件名),tracker直接返回一台用些的storage。
结果client直接和storage通讯完成文件下载。
我们在来看看吧FastDFS可以下载的运行的示意图
FastDFS高可用架构实践。
如果FastDFS压力过大此时我们怎么在对这个架构接受优化呢?我们可以不使用ATS做文件缓存服务。
我们通过对FastDFS中的Trackerserver和Storageserver的工作流程的了解,这些上传的图片和直接下载的具体一点场景图列,也可以发现自己它能够做到了冗余数据,能做到了自动出现故障转移。以上那就是我这个问题的理解。
我们共同交流FastDFS的咨询问题。在评论区给我留言,我们一同继续讨论,坚持了没更新对这个问题的理解。
新手学JAVA培训班都要学哪些知识啊?
这对Java初学者来说,建议的学习路线是从基础到高级十阶式的。不论做什么事情也是要踏踏实实走好每一步的再去做,尤其是去学习这样的事情,极其是不能够一蹴即至的,必须从基础内容不要急于求成的并且怎么学习。
学习那像盖楼房一样的,要牢固的基础,只要你地基打好做的匀称,才还能够看见万丈高楼平地起,学习确实是差不多,唯有把基础打好,在以后在也能发展中的更好。
新手学JAVA培训都要学哪些知识
第一阶段:是去学习Java的基知识
01Java编程语言总体概述
02Java基础语法
03Java数组
04面向对象编程
05高级类特性
06JavaAPI
07异常处理
08真包含于与泛型
09JavaIO流
10Java多线程
11JavaReflection(Java反射)
12网络编程
13Java8新特性
14Java9/Java10/Java11新特性
15比较经典项目
第二阶段:是学习Mysql数据库相关知识
01Mysql基础
02SQL语言
03JDBC
04DBUtils
第三阶段:学习色web开发与实战技术
01HTML与CSS3
02JavaScript
03jQuery
04AJAXampJSON
05XML
06bootstrap
07Web服务器基础
08Servlet
09JSP
10JSTL
11EL
12CookieampSession
13FilterampListener
14国际化
15文件上传下载
第四阶段:是Java的经典流行框架的使用
01Dubbo
02SpringBoot
03SpringCloud
04Docker
05NIO
06FastDFS
07Elasticsearch
08Thymeleaf
09MyCat
10ActiveMQ
11ECharts
12分布式事务
13单点登录
14Zookeeper
第五阶段:Java初级和前沿技术成果的学习
01Dubbo
02SpringBoot
03SpringCloud
04Docker
05NIO
06FastDFS
07Elasticsearch
08Thymeleaf
09MyCat
10ActiveMQ
11ECharts
12分布式事务
13单点登录
14Zookeeper
第六阶段:企业国际对接项目以在线教育客户案例实操
01Vue
02ES6
03MybatisPlus
04课程中心微服务垒建
05课程中心微服务功能实现方法
06前后端分离技术
07后台管理系统前端页面的堆建
08课程中心前端功能利用
09阿里云OSS
10云存储微服务
11POI你的操作Excel
12课程都差不多信息管理
13阿里云VOD
14SpringCloud服务发现
15社交直接登录-登录
16SpringCloud配置中心
17SpringCloudHystrix
第七阶段:又要学大数据查找技术。
01大数据技术概论
02Hadoop总体概述与按装
03HDFS伪分布式文件
04YARN
05MapReduce请赐教
06Hadoop-HA高可用
07HDFS彻底分布式
08Hive入门学习
09Hive深入
10Hive有高级
2020java学习路线图
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。