`
- 浏览:
15773 次
- 性别:
-
在了解了分布式系统的基本原理之后,弄清楚了分布式系统的几个问题,整理如下。
首先,分布式系统到底是什么?
分布式顾名思义即分散,非集中方式,分布式系统的定义是,由对分布在网络的不同的位置上的系统进行通信和数据交换的系统。
那么为什么要需要这样理念的系统呢?
源于其三点,也是其优点:第一,数据共享,它可以解决组织机构分散而数据需要相互联系的问题,并且可以使多个程序(线程,进程)并发执行,提高效率。比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。
第二,它没有全局时钟,每个机器都有其各自的时间,程序间协调靠数据交换,局部的数据库管理员拥有高度的自治权。并且分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。
第三, 故障独立,一些机器出现故障时,由于其故障的影响仅限于局部数据应用,整个系统来讲它的可靠性比较高。
分布式系统的特性如下:
1.系统由不同的网络、计算机硬件、操作系统组成的“异构性”
2.系统新的资源共享服务能被增加和供多种客户程序使用的“开放性”
3.系统容纳资源和用户的“可伸缩性”
4.系统调度的“透明性”
分布式系统的要点原理就不赘述了。具体可以参考:
http://wenku.baidu.com/link?url=ZSImRneZYc-LC1WBE3Kt4InNqlWfBIdjQcWo_AcjGbgc_DbOuH3t8HY5UXZXW705dShS2wsXsiur3-hXiz1qPb_C7WfGdbvcjGhwfJ3XmMa
主要阐述下其思想。。
其数据分布方式主要包括哈希方式,按数据范围分布,按数据量分布,一致性哈希,副本与数据分布,本地化计算--
本地化计算强调的是移动数据不如移动计算的思想。 本地化计算是计算调度的一种重要优化,如果计算节点和存储节点位于不同的物理机器则计算的数据需要通过网络传输,此种方式的开销很大。而这一种本地化计算的思路是,将计算尽量调度到与存储节点在同一台物理机器上的计算节点上进行,节省了成本,提高了效率。
分而治之的思想。局部拥有高度自主,程序间调度有序。一个超级市场连锁店可能有许多分店,每个商店都需要采购当地生产的商品,进行本地销售,或者要对本地的哪些蔬菜因时间太长或已经腐烂而必须扔掉作出决定。因此,每个商店的本地计算机能明了存货清单是有意义的,而不是集中于公司总部。毕竟,大多数查询和更新都是在本地进行的。然而,连锁超级市场的高层管理者也会不时地想要了解他们目前还有多少甘蓝。实现这一目标的一种途径就是将整个系统建设成对于应用程序来说就像一台计算机一样,但是在实现上它是分布的。这点在MapReduce编程模型的设计思想中得到充分体现。
关于分布式系统与分布式存储仍在继续了解中。。欢迎共同探讨和交流
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在分布式系统中,为了提高系统的可用性和性能,通常会采用数据复制技术。然而,数据复制也会带来一致性问题,即不同节点间的数据副本可能不一致。例如,当客户端C1更新了一个键K的值从V1变为V2时,客户端C2可能暂时...
第一部分“初识ZooKeeper”主要包括第一章和第二章,主要介绍了Zookeeper的起源、设计目标、系统架构以及它在分布式系统中的角色。这一部分会让读者明白Zookeeper如何通过提供一致性服务,解决分布式环境下的命名、...
一站式学习Redis 从入门到高可用分布式实践(九) 包含Redis基础,使用经验介绍、Java,Python客户端示范、Redis使用规范,由浅入深讲解并伴有企业中Redis开发的相关项目以及大规模Redis的实战经验,是开发和运维...
数据存储是指将采集到的数据存储在分布式系统中的过程,包括Hadoop、ODPS/飞天流式计算引擎等技术。数据处理是指对采集到的数据进行处理和分析的过程,包括数据分析与挖掘、数据可视化等技术。 大数据的关键领域 ...
JSON-RPC的主要特点在于其简洁性和高效性,它允许跨语言的服务器与客户端之间进行通信,使得分布式系统开发变得更加便捷。与传统的RPC协议相比,JSON-RPC使用JSON格式传递数据,这使得数据解析和生成更加直观,因为...
Java初识是一个全面的入门教程,旨在帮助无论是编程新手还是有其他编程...这将为你打开一扇通向Java开发世界的大门,无论你是想成为一名Web开发者,还是希望参与更复杂的分布式系统开发,这些知识都是必不可少的基石。
Java语言技术初识 Java,作为一种革命性的编程语言,由Sun ...无论是小型设备还是大型服务器,从简单的控制台应用到复杂的分布式系统,Java都有广泛的应用。深入理解Java的基本概念和特性,对于开发者来说至关重要。
Hadoop概述,初步认识,分布式系统概述,离线数据分析流程,伪分布式环境搭建,分布式集群环境搭建,集群使用效果演示
4. **网络操作系统**:随着网络技术的发展,Netware、Windows NT、Linux等网络操作系统应运而生,支持文件共享、打印服务和分布式计算。 四、操作系统的分类 1. **按计算机机型分**:可以分为大型机操作系统、中型...
Redis是一款高性能的键值对数据库,常用于数据缓存、消息队列以及分布式系统等领域。在初识Redis的过程中,我们通常会关注以下几个关键知识点: 1. **数据类型**:Redis支持五种基本数据类型,包括字符串(String)、...
作者:夏明(涯海)创作日期:2019-09-19专栏地址:【稳定大于一切】狭义上的链路追踪(Tracing),是指跟踪请求在分布式系统中的流转路径与状态,协助开
Zookeeper 分布式系统的基石 从0开始搭建3个节点额度zookeeper集群 深入分析Zookeeper在disconf配置中心的应用 基于Zookeeper Watcher 核心机制深入源码分析 Zookeeper集群升级、迁移 基于Zookeeper实现分布式...
Spring Cloud是基于Spring Boot实现的云应用开发工具集合,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线等)中快速构建一些常见模式的能力。 以上是对Spring框架的...
混沌工程是在分布式系统上进行实验的学科,目的是建立对系统抵御生产环境中失控条件的能力以及信心。工程师团队最不愿碰到的便是大半夜被电话叫醒,开始紧张地查验问题,处理故障以及恢复服务。也许就是因为睡前的一...
在IT行业中,定时任务是许多复杂系统不可或缺的一部分,它们用于执行特定时间的自动化操作,如数据备份、报表生成、清理任务等。Spring框架是Java领域最流行的应用框架之一,而Quartz则是广受欢迎的定时任务调度库。...
软件工程的产生和发展可以分为四个时期:早期的程序设计阶段,软件作坊阶段,批量生产阶段,以及分布式客户机服务器环境阶段。每个阶段都伴随着计算机硬件的发展,软件工程从无到有,从理论研究到实际应用,逐渐形成...
**Git** 是一款非常流行的分布式版本控制系统,广泛应用于软件开发和其他需要版本控制的场景。本文档主要介绍Git的基础命令和操作,帮助初学者快速入门。 ##### 初始化Git版本库 初始化Git版本库有两种常见的方式...
HBase,全称Hadoop Database,是一种构建在Hadoop文件系统(HDFS)之上的分布式列式存储系统。它源于Google的Bigtable论文,旨在解决大数据量场景下的数据存储和检索问题。HBase不同于传统的关系型数据库(RDBMS),...
2、Hadoop 分布式文件系统 2.1 HDFS的设计 HDFS遵循主从式架构,由一个NameNode作为主节点负责元数据管理,多个DataNode作为从节点存储实际数据。这种设计使得数据可以快速读取,同时也便于扩展到数千个节点。 ...