文档章节

分布式系统基础

theLovelyBugfly
 theLovelyBugfly
发布于 2018/08/30 16:58
字数 1113
阅读 18
收藏 0

一: 什么是分布式系统

《分布式系统原理与范型》一书中这样定义分布式系统:“ 分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。

归纳来说就是 : 硬件独立,软件统一 。

什么是硬件独立 ?

所谓硬件独立,是指计算机机器本身是独立的,一个大型的分布式系统,会由若干台计算机来组成系统的基础设施。

软件统一:

对于用户来说,用户就像是跟单个系统打交道,就好比我们每天上网看视频,视屏网站就是一个系统软件,其背后是如何运作的,如何部署的,部署了几台服务器,每台服务器分工是什么,这些对用户来说是透明的,不可见的。用户只关心今天网站提供什么节目,视屏是否流畅等。

二 :如何设计分布式系统

设计分布式系统本质 就是 如何 合理的将一个系统拆分成多个子系统并且部署到不同的机器上。 所以,第一就要考虑 如何合理的将系统拆分,拆分后的各个子系统不可能孤立的存在,必然要通过网络进行连接交互。 所以如何通信,显得尤为重要。在通信中还要识别敌我,防止信息篡改和拦截。这就涉及到安全问题了。分布式系统要适应不断增长的业务需求,就需要考虑其扩展性。还要保证可靠性和数据的一致性。

   概括的说 有这几个方面:

  1.     如何将系统拆分为子系统?
  2.     如何规划子系统间的通信?
  3.     如何考虑通信过程中的安全?
  4.     如何让子系统扩展?
  5.     如何保证子系统的可靠性?
  6.     如何实现数据的一致性?

   三: 分布式系统面临的一些困难挑战。

 异构性:由于基于不同的网络,操作系统,计算机硬件和编程语言来构造,必须要考虑一种通用的网络通信协议来屏蔽异构系统之间的差异。一般交由中间件来处理。

缺乏全球时钟:交换消息协调动作 需要经常依赖于程序动作发生的时间共识。

一致性:数据被分散或复制到不同的机器上,如何保证各台主机之间的数据一致性。

故障独立性: 允许出现故障,而不影响整个系统的正常使用。

并发: 每个资源必须被设计成在并发环境中是安全的。

透明性: 分布式系统中的任何组件,或者主机的升级,迁移,对于用户来说都是透明的,不可见的。

开放性: 分布式系统由不同的程序员来编写不同的组件,最终集成为一个系统,那么组件所发布的接口必须遵守一定的规范且能够被互相理解。

安全性:加密和拒绝服务攻击。

可扩展性: 系统要随着业务量的增加,相应的系统也必须能扩展来提供对应的服务。

 

线程: 概不赘述。

通信: 网络基础知识。

I/O模型: 

1  同步和异步

同步是指用户线程发起I/O请求之后需要等待或者轮询内核I/O 操作完成后才能继续进行执行。

异步是指用户发起I/O请求后任然继续执行,当内核I/O操作完成后悔通知用户线程或者调用用户线程注册的回调函数。

2  阻塞和非阻塞

阻塞是指I/O操作需要彻底完成后才回到用户空间。

非阻塞是指I/O 操作 被调用后立即返回给用户一个状态值,无须等到I/O操作彻底完成。

 

 

 

© 著作权归作者所有

theLovelyBugfly

theLovelyBugfly

粉丝 11
博文 1
码字总数 1113
作品 0
成都
程序员
私信 提问
Hadoop大数据开发框架学习

一.Hadoop框架介绍 hadoop是Apache发布的开源分布式基础架构 他的两个核心是 HDFS HDFS是Hadoop的文件管理系统,负责了海量数据的存储,是做大数据的基础 MapReduce MapReduce则是为了海量数...

jokerhzf
2018/08/31
0
0
Elasticsearch技术分享(一)

场景 与同事分享一下最近学习es的心得 大纲 1)es使用场景 2)搭建环境与集群基本运维命令介绍 3)基础分布式架构初探与核心概念解读 4)实战 分析 一、es使用场景 1) 什么是 es A) 故事引入...

PENGYUCHENG32109
2017/03/20
0
0
.net 大型分布式电子商务架构说明

.net大型分布式电子商务架构说明 背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运...

车江毅
2015/10/26
11.2K
29
如何搭建完备实用的基础架构与中间件体系?

基础架构,是项目基础库/基础软件/基础平台的架构与实现。它不直接从事任何对外业务,而是为后端工程师提供「服务」,如 RPC、负载均衡、消息队列、存储中间件等等。而中间件是一种独立的系统...

OSC源创君
2018/05/21
3.3K
9
.net 大型分布式电子商务架构说明

.net大型分布式电子商务架构说明 背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运...

车江毅
2015/10/26
2
0

没有更多内容

加载失败,请刷新页面

加载更多

常用正则表达式整理

本文转载于:专业的前端网站➩常用正则表达式整理 /*以下为亲自验证过,备用*/   数字,0-100,包含0和100,且小数点后最多有三位: /^(\d{1,2}(\.\d{1,3})?|100)$/ 匹配正整数:^[1-9]*[1-9][...

前端老手
6分钟前
0
0
Java 中可重入锁、不可重入锁的测试

Java 中可重入锁、不可重入锁的测试 可重入锁 指在同一个线程在外层方法获取锁的时候,进入内层方法会自动获取锁。 为了避免死锁的发生,JDK 中基本都是可重入锁。 下面我们来测试一下 sync...

ConstXiong
6分钟前
0
0
怎么给视频变音

怎么让录制视频中的声音变得可爱吗?其实方法非常的简单,只要进行视频变音制作就好了,那怎么给视频变音呢?下面就一起来看看视频变音的具体制作方法吧! 具体步骤如下: 第一步: 打开手机...

白米稀饭2019
11分钟前
2
0
学习记录(ECMAScript 6.0入门_day01重点总结)

课程目标 1、ECMAScript6和JAVAScript关系 ES6是JAVAScript的规格,JavaScript是ES6的一种实现。 变量声明: 局部变量:let 它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内...

庭前云落
22分钟前
2
0
springboot 源码SpringApplication的run方法解析

public ConfigurableApplicationContext run(String... args) {//记录启动应用启动时间StopWatch stopWatch = new StopWatch();stopWatch.start();ConfigurableApplicationCo......

dudu
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部