分布式(集群)的基本概念以及分布式的应用场景【转】
2011-09-30 12:36
495 查看
概念
分布式是指将不同的业务分布在不同的地方。
而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。
而集群并不一定就是分布式的。
就比如新浪网,访问的人多了,他可以做一个群集,
前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多,
但是个人觉得,它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。
需要实现发生错误时候,自动切换
学习或者测试分布式技术
这时候需要考虑:
如何实现负载均衡
在哪个层次实现转移负载
负载的均衡如何实现
如何实现故障转移
如何监控故障
如何切换服务
二、把一个功能拆分成多个功能,不同功能分布部署到不同服务器上
对外功能的拆分
http://news.sina.com.cn/ http://sports.sina.com.cn/ http://mobile.sina.com.cn/ http://www.microsoft.com/china/ http://www.microsoft.com/downloads/
SOA
n层架构,其中的一些层分布到不同服务器上
WEB + DB 模式
Web Client Level
例子:QQ 设置中你可以选择登陆的服务器IP
DNS Based Selection
优点:
缺点:
不能区分服务器的差异,也不能反映服务器的当前运行状态。
DNS 的刷新需要时间,无法及时故障切换。
TCP balancing proxies
硬件
软件
HTTP-aware routers
URL重定向
Squid是Linux下一个缓存Internet数据的代理服务器软件
拆分网站对外功能
不同域名前、后缀
URL 重写
SOA
每个Service 分布到一台服务器上
n 层架构
缓存分布式部署
文件Cache
内存Cache (memcached )
http://www.danga.com/memcached/ https://sourceforge.net/projects/memcacheddotnet/
DB分布式集群部署
故障转移
发布订阅
分布式分区视图
应用服务器(比如定时发送邮件通知的服务)
相关技术:
企业服务
.net Remoting
WCF
Web Service
从应用所用数据看是否支持分布式
多份并存数据(一个数据存在多份)最大多长时间同步一次是可接受的。
内存缓存的数据跟数据库的数据(页面级缓存和业务逻辑缓存)
静态文件跟数据库
查询数据库跟业务变更数据库
数据按照一定规则拆分(一个数据只存在一份)对业务是否有影响
过去每年的数据迁移到一个对应历史库中。
专用的图片服务器 http://pics.ebaystatic.com/
此处可分析:QQ的在线用户数据,会是如何处理的呢?
从应用逻辑过程看是否支持分布式
是否可以并行执行这个逻辑过程
这个逻辑过程是否可以拆分成几个松耦合的过程
分布式是指将不同的业务分布在不同的地方。
而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。
而集群并不一定就是分布式的。
就比如新浪网,访问的人多了,他可以做一个群集,
前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多,
但是个人觉得,它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。
何时要用分布式
单台服务器无法承受压力。需要实现发生错误时候,自动切换
学习或者测试分布式技术
应用分布式的场景
一、提供多个对外的接口,按照一定规则,分派不同请求由不同接口来处理。这时候需要考虑:
如何实现负载均衡
在哪个层次实现转移负载
负载的均衡如何实现
如何实现故障转移
如何监控故障
如何切换服务
二、把一个功能拆分成多个功能,不同功能分布部署到不同服务器上
对外功能的拆分
http://news.sina.com.cn/ http://sports.sina.com.cn/ http://mobile.sina.com.cn/ http://www.microsoft.com/china/ http://www.microsoft.com/downloads/
SOA
n层架构,其中的一些层分布到不同服务器上
WEB + DB 模式
网站请求中的分布式
按照请求流程,我们可以在以下环节按照一定规则,把用户的请求分流到不同服务器上:Web Client Level
例子:QQ 设置中你可以选择登陆的服务器IP
DNS Based Selection
优点:
缺点:
不能区分服务器的差异,也不能反映服务器的当前运行状态。
DNS 的刷新需要时间,无法及时故障切换。
TCP balancing proxies
硬件
软件
HTTP-aware routers
URL重定向
网站应用中的分布式
代理服务器实现请求的分离Squid是Linux下一个缓存Internet数据的代理服务器软件
拆分网站对外功能
不同域名前、后缀
URL 重写
SOA
每个Service 分布到一台服务器上
n 层架构
缓存分布式部署
文件Cache
内存Cache (memcached )
http://www.danga.com/memcached/ https://sourceforge.net/projects/memcacheddotnet/
DB分布式集群部署
故障转移
发布订阅
分布式分区视图
应用服务器(比如定时发送邮件通知的服务)
相关技术:
企业服务
.net Remoting
WCF
Web Service
如何判断一个应用是否支持分布式
如果发现某一部分应用需要做分布式了,就可以按照以下思路来考虑如何改造:从应用所用数据看是否支持分布式
多份并存数据(一个数据存在多份)最大多长时间同步一次是可接受的。
内存缓存的数据跟数据库的数据(页面级缓存和业务逻辑缓存)
静态文件跟数据库
查询数据库跟业务变更数据库
数据按照一定规则拆分(一个数据只存在一份)对业务是否有影响
过去每年的数据迁移到一个对应历史库中。
专用的图片服务器 http://pics.ebaystatic.com/
此处可分析:QQ的在线用户数据,会是如何处理的呢?
从应用逻辑过程看是否支持分布式
是否可以并行执行这个逻辑过程
这个逻辑过程是否可以拆分成几个松耦合的过程
相关文章推荐
- 分布式(集群)的基本概念以及分布式的应用场景
- 分布式(集群)的基本概念以及分布式的应用场景
- 分布式(集群)的基本概念以及分布式的应用场景
- 一起学习Silverlight企业应用2:开始使用Silverlight,以及一些基本概念
- 分布式和集群区别?什么是云计算平台?分布式的应用场景?
- 事务的基本概念和性质以及在magento中的应用
- Runtime基本知识点以及应用场景
- 浅谈对于RDD的认识 RDD(Resilient Distributed Datasets)弹性分布式数据集,是在集群应用中分享数据的一种高效,通用,容错的抽象,是Spark提供的最重要的抽象的概念
- mysql集群搭建一——集群基本概念以及windows集群环境搭建
- Spring---AOP基本概念以及Advice5种类型的通知注解应用实例
- 分布式和集群区别?什么是云计算平台?分布式的应用场景?
- 分布式和集群的基本概念
- 集群分布式并行图形绘制基本概念
- WCF回顾一、基本概念和应用场景
- 分布式和集群区别?什么是云计算平台?分布式的应用场景?
- hadoop学习第二天-了解HDFS的基本概念&&分布式集群的搭建&&HDFS基本命令的使用
- iOS RunLoop 基本概念以及使用场景
- 消息队列(0)——基本概念及应用场景
- 分布式和集群区别?什么是云计算平台?分布式的应用场景?
- 【Memcached】集群搭建——集群,分布式以及分布式集群