什么是分布式系统
来源:互联网 发布:linux命令怎么退出vi 编辑:程序博客网 时间:2024/06/05 02:20
什么是分布式系统
分布式系统有多个含义:
1)表示计算机科学的一个研究领域,研究方向。这个层面的分布式系统比较学术,不是本文讨论的对象。
2)工程领域的实际使用的分布式系统。分布式系统是互联网应用的基石,是底层的支撑平台。本文讲的分布式系统指这个层面。
互联网应用的特点是:高并发,海量数据。互联网应用的用户数是没有上限的(取决于其开放特性),这也是和传统应用的本质区别。高并发指系统单位时间内收到的请求数量(取决于使用的用户数),没有上限。海量数据包括:海量数据的存储和海量数据的处理。这两个工程难题都可以使用分布式系统来解决。
简单理解,分布式系统就是把一些计算机通过网络连接起来,然后协同工作。协同工作需要解决两个问题:
1)任务分解
把一个问题拆解成若干个独立任务,每个任务在一台节点上运行,实现多任务的并发执行。
2)节点通信
节点之间互相通信,需要设计特定的通信协议来实现。协议可以采用RPC或Message Queue等方式。
架构
集群系统主要有两种风格的架构:
client server(C/S)架构
任务分解
任务分成两部分,client和server。client和server执行不同的任务,client需要调用server来实现自己的任务。
节点通信
在基于B/S架构的设计中,广泛采用HTTP作为通信协议。
三层架构(多层架构,3-tier architecture, n-tier architecture)
这个架构是C/S架构的衍生,某些server可以再运行client任务,调用其他server,形成一个层次级联。多层架构的通信协议可以有多种。
数据库系统都会提供专用客户程序,来访问数据库。这个客户程序内部实现了数据库访问协议。
peer-to-peer架构
peer-to-peer的分布式系统中,各个节点都是对等的,运行同种类型的任务。各个节点协同工作,整个分布式系统对外看来,就像一台机器,只不过性能更强。这种p2p架构的分布式系统其实就是集群。
分布式系统和集群的关系
从广义上说,集群是分布式系统的一种类型,即基于P2P架构的分布式系统。
从狭义上说还是可以做一些区分:
集群:所有节点一起工作,实现同一服务。一个节点挂掉,不会对集群有任何影响。
分布式系统:系统每一个节点,都实现不同的服务,如果一个节点挂了,这个服务就不可访问了。在实际部署中,分布式系统中的每个节点都可以是一个集群,这样可以提高服务的可用性,性能等。
0 0
- 什么是分布式系统?
- 什么是“分布式应用系统”
- 什么是“分布式应用系统”
- 什么是分布式数据库系统
- 什么是分布式系统?
- 什么是分布式应用系统
- 什么是“分布式应用系统”
- 什么是分布式系统
- 什么是分布式系统
- 什么是分布式系统
- 什么是分布式系统
- 什么是分布式系统
- WCF 之 什么是分布式系统
- 什么是分布式系统(通俗易懂的说法)
- 什么是分布式系统中的幂等性
- 什么是分布式系统中的幂等性
- 什么是分布式系统中的幂等性
- 什么是分布式系统中的幂等性
- Spring解析子元素constructor-arg
- SDNU——OJ——1016矩形合并
- 机器学习笔记6
- jzoj 4996. 【NOI2017模拟3.1】游戏 扫描线+treap
- BeanUtils组件
- 什么是分布式系统
- 蓝桥杯算法训练——安慰奶牛(最小生成树+kruskal)
- kafka与RocketMQ对比
- JS实现双击内容变为可编辑状态
- Tesseract OCR to Page (TPT) and Page Viewer (PVT)
- 3月2日,helloworld,每日20行。
- 大学思科网络技术知识点
- spring的依赖注入是什么意思
- AndroidStudio里查看hprof文件