【完结26章】Java主流分布式解决方案多场景设计与实战
给大家分享一套java课程——Java主流分布式解决方案多场景设计与实战,已完结26章,附源码+文档下载。
Ceph的核心组件包括Client客户端、MON监控服务、MDS元数据服务、OSD存储服务,各组件功能如下:
Client客户端:负责存储协议的接入,节点负载均衡
MON监控服务:负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSD Map、Monitor Map、PG Map和CRUSH Map
MDS元数据服务:负责保存文件系统的元数据,管理目录结构
OSD存储服务:主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。
分布式文件系统(Distributed File System,简称DFS)是一种将文件分布存储在多个计算机节点上的文件系统。它通过将文件划分为多个块,并在不同的节点上存储这些块,实现了文件的并行存储和访问。DFS提供了一种透明的文件访问方式,使得用户可以像访问本地文件一样访问分布在多个节点上的文件。
分布式文件系统可以有效解决数据的存储和管理难题,将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。分布式文件系统具有高可靠性、可扩展性和高性能的特点,可以应对大规模数据存储和访问的需求。
现有的云存储分布式文件系统有GFS、HDFS、Lustre、FastDFS、GlusterFS、GPFS、Ceph、淘宝TFS和腾讯TFS等,本文将对这些分布式文件系统进行大概的介绍。
Ceph数据的写入流程
1) 数据通过负载均衡获得节点动态IP地址;
2) 通过块、文件、对象协议将文件传输到节点上;
3) 数据被分割成4M对象并取得对象ID;
4) 对象ID通过HASH算法被分配到不同的PG;
5) 不同的PG通过CRUSH算法被分配到不同的OSD
云存储是实现云计算系统架构中的一个重要组成部分。随着信息技术的不断发展,全球数据规模日益膨胀。由于传统的SAN (Storage Arew Network) 或NAS(Network Attached Storage) 存储技术在存储容量和可扩展性上存在瓶颈,并且在硬件设备的部署数量上也存在一定限制,这使得用户升级系统的成本大大增加。云存储采用可扩展的分布式文件系统,并使用廉价的Pc机来进行系统部署,从而使得整体存储架构能够保持极低的成本。
云存储是通过集群应用、网格技术、分布式文件系统等,将网络中大量类型各异的存储设备整合起来,并对外提供数据存储和业务访问功能的系统。简单来说,云存储是对虚拟化存储资源的管理和使用。
区别于传统的存储技术,云存储提供了更好的可扩展性,当需增加存储能力时,只需添加服务器即可实现,而不需要对存储系统的结构进行重新设计;同时随着存储能力的增加,云存储系统的性能不会下降。
云存储专注于解决云计算中海量数据的存储问题,它既可以给云计算技术提供专业的存储解决方案,又可以独立发布存储服务。云存储将存储作为服务,它将分别位于网络中不同位置的大量类型各异的存储设备通过集群应用、网格技术和分布式文件系统等集合起来协同工作,通过应用软件进行业务管理,并通过统一的应用接口对外提供数据存储和业务访问功能。在使用一个独立的存储设备时,我们需要了解该设备的型号、接口以及该设备所使用的传输协议。
云存储系统具有良好的可扩展性、容错性,以及内部实现对用户透明等特性,这一切都离不开分布式文件系统的支撑。
云存储系统具有良好的可扩展性、容错性,以及内部实现对用户透明等特性,这一切都离不开分布式文件系统的支撑。现有的云存储分布式文件系统包括GFS、HDFS、Lustre、FastDFS、PVFS、GPFS、PFS、Ceph和TFS等。它们的许多设计理念类似,同时也各有特色。
分布式服务治理
服务协调(用分布式锁实现)
服务协调:多个进程可能对同一个资源进行访问,造成结果的不一致等情况
分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序去访问某种临界资源,防止造成“脏数据”的后果
这里我们使用分布式锁解决服务协调问题
分布式锁的三种实现方式:
基于数据库实现(悲观锁,乐观锁)
基于缓存(Redis)实现:通过命令setnx,expire,delete实现
Java分布式架构是一个复杂的主题,它涉及到许多不同的概念和技术。在本文中,我们将介绍Java分布式架构的应用、特点和架构模式,以便更好地了解该主题。
Java分布式架构可以应用于许多不同的场景,例如:
电子商务网站:电子商务网站需要处理大量的交易和订单,而Java分布式架构可以帮助这些网站实现可扩展性和高可用性。
社交网络:社交网络需要处理大量的用户数据和交互,Java分布式架构可以帮助这些社交网络实现高度的可扩展性和可靠性。
金融服务:金融服务需要处理大量的交易和数据,而Java分布式架构可以帮助这些金融服务实现高度的可靠性和可扩展性。
Java分布式架构有许多特点,其中一些包括:
可扩展性:Java分布式架构可以通过添加更多的节点来扩展应用程序的处理能力。这种可扩展性使得应用程序可以处理更多的负载。
可靠性:Java分布式架构可以通过在不同节点之间复制数据来实现容错性。这意味着即使某个节点发生故障,应用程序仍然可以继续运行。
高性能:Java分布式架构可以通过在不同节点之间分配任务来实现高性能。这意味着应用程序可以更快地处理大量的数据。
易于管理:Java分布式架构可以通过使用统一的管理工具来简化管理。这意味着管理员可以更轻松地管理大规模的应用程序。
Java分布式架构有许多不同的架构模式,其中一些包括:
客户端-服务器架构:客户端-服务器架构将应用程序分成两部分,客户端和服务器。客户端向服务器发送请求,并接收服务器的响应。
分布式对象架构:分布式对象架构将应用程序分成多个对象,这些对象可以在不同的节点上运行。这些对象之间可以通过远程方法调用进行通信。
分布式消息传递架构:分布式消息传递架构将应用程序分成多个节点,这些节点通过消息传递进行通信。每个节点都有自己的队列,用于接收和发送消息。
![QQ截图20231222100025.png](https://static.golangjob.cn/231222/3e967a92ee6c3788dea00e40376608d9.png)
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)