“云”中那点事!

来源:互联网 发布:4g流量3g网络能用吗 编辑:程序博客网 时间:2024/05/21 09:00

以前整理和编写的一个关于云的PPT分享之!
一、云计算标准定义
  • l云计算(英语:cloudcomputing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
  • l云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)
二、云计算基本特征
  • l基于虚拟化技术快速部署资源或获得服务
  • l实现动态的、可伸缩的扩展
  • l按需求提供资源、按使用量付费
  • l通过互联网提供、面向海量信息处理
  • l用户可以方便地参与
  • l形态灵活,聚散自如
  • l减少用户终端的处理负担
  • l降低了用户对于IT专业知识的依赖
三、云计算产业链全景图

四、云服务商

五、中国云计算基础设施产业地图
l近来,我国云计算呈现快速发展态势,各级政府也在纷纷建设云计算中心,全国各地都在推进相应的云计算计划。有研究机构更是预测全国云计算产业链更有望达到万亿级规模。

六、云计算架构模型

七、云计算:IaaS开创者-Amazon

八、云计算:PaaS缔造者-Google
l(GAE)GoogleApp Engine是一个开发、托管网络应用程序的平台,使用Google管理的数据中心。它在2008年4月发布了第一个beta版本。
lGoogleApp Engine支持的编程语言是Python、Java和Go

九、云计算:SaaS成功者-SalesForce
lSalesforce是创建于1999年3月的一家客户关系管理(CRM )软件服务提供商,宣称可提供随需应用的客户关系管理(On-demandCRM);当前,全球有29,800 多家公司和646,000 名注册用户正使用Salesforce的强大功能分享客户信息,以及开发具有更高收益的客户关系。 

十、云->分布式
  • l分布式文件系统
  • l分布式数据库系统
  • l分布式应用系统
  • l分布式缓存系统
  • l分布式计算(并行计算)
  • l分布式事务
  • l分布式算法&原理
  • l分布式锁
  • l分布式编程语言
  • l分布式内存队列
十一、分布式文件系统
  • l数据/文件分散存储到不同的物理设备
  • l文件/数据被分块存储
  • l文件读写并行处理
  • £GFS--GoogleFile System
  • £HDFS—Hadoop Distributed File System
  • £TFS--Taobao File System(针对海量小文件)
  • £FastDFS—类似GFS,更轻量级
  • £MogileFs--www.danga.com
十二、分布式数据库系统
  • l分布式数据库系统是在集中式数据库系统的基础上发展来的(http://baike.baidu.com/view/297197.htm).
  • lBigTable—建立在GFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统
  • lHbase—建立在HDFS之上,BigTable开源山寨版
  • lMySQL
  • £Master-Slave
  • £Master-Master
  • £MySQLCluster
十三、分布式数据库系统—数据分割
  • l垂直分割(纵向):按列或表进行数据分割
  • l水平分割(横向):按行进行数据分割
  • £按Key区分:1~1000的对应DB1,1001~2000的对应DB2,以此类推:(可部分迁移;数据分布不均)
  • £Hash取模:如4个数据库,Hashkey=1,则1%4=1存储到DB1中,Hashkey=6,则6%4=2存储到DB2中,以此类推:(数据分布均匀;数据迁移的时候麻烦)
  • £路由表:建立一个单独的DB用来存储Key与DB的存储映射关系,每次访问数据库的时候都要先查询一次这个数据库,以得到具体的DB信息:(比较灵活;效率较低)
十四、分布式应用系统
  • lSession复制,Failover
  • £Session交叉复制
  • £Session集中管理(Memcached)
  • lHA(HighAvailability)双机热备
  • l负载均衡(LoadBalance)
  • £硬--四层交换:http://baike.baidu.com/view/808469.htm
  • £软--Apache/ Nginx
  • £硬与软之间:LVS-Linux Virtual Server
  • lDNS轮询:轮询、加权、最少连接、随机和响应时间
十五、分布式缓存系统
  • lMemcached:一个高性能的分布式内存对象缓存系统(http://baike.baidu.com/view/794242.htm)
  • £内存存储效率高,通讯协议简单
  • £结点之间不进行通讯和数据共享
  • £数据缓存分布机制在客户端实现
  • l分布算法1-- Hash取模
  • l分布算法2--一致性哈希算法(ConsistentHashing Algorithm)
£节点变动后其他节点受影响尽可能小
£节点变动后数据重新分配尽可能均衡
  • 一致性哈希算法
l首先求出memcached节点的哈希值,并将其配置到0~2的32方的圆上。然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过2的32方仍然找不到服务器,就会保存到第一台memcached服务器上。

lJBossCache:一个复制的事务处理缓存(http://docs.jboss.org/jbosscache/3.2.1.GA/userguide_en/html_single/index.html)
£cachedin-memory for efficient, thread-safe retrieval.
£replicatedto some or all cache instances in a cluster.
£persistedto disk and/or a remote, in-memory cache cluster ("far-cache").
£garbagecollected from memory when memory runs low, and passivated to disk so state isn't lost. 

lInaddition, JBossCache offers a rich set of enterprise-class features:
£beingable to participate in JTA transactions (works with most Java EE complianttransaction managers).
£attachto JMX consoles and provide runtime statistics on the state of the cache.
£allowclient code to attach listeners and receive notifications on cache events.
£allowgrouping of cache operations into batches, for efficient replication
OSCache、Ehcache、Terracotta 

十六、分布式计算(并行计算) MapReduce-统计单词个数

十七、分布式事务
  • lXA:是 X/Open组织(即现在的 OpenGroup ) DTP(DistributedTransaction Processing) 定义的交易中间件与数据库之间的接口规范(即接口函数);XA协议由Tuxedo首先提出的,并提交给X/Open组织
  • lXA规范的基础是两阶段提交协议。
  • lJTA:JavaTransaction API,Java版的XA规范实现
十八、分布式算法&原理
  • lCAP理论:
  • £Consistency  (一致性), 数据一致更新,所有数据变动都是同步的
  • £Availability(可用性), 好的响应性能
  • £Partitiontolerance (分区容错性) 可靠性
  • lCAP告诉我们,任何一个分布式系统不可能同时满足这三个条件,最多只能同时满足两个,无法三者兼顾.
  • l普遍做法:首选满足A和P,利用变通方式满足C


  • lPaxos:分布式选举算法,目的是在分布式环境里解决一致性问题,此问题有两种解决模型:共享内存(Sharedmemory)和消息传递(Messagespassing)。Paxos算法就是一种基于消息传递模型的一致性算法。http://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95
  • l《Paxos在大型系统中常见的应用场景》
  • lPaxos算法实现:
  • £GoogleChubby:Google内部产品,闭源
  • £Hadoop Zookeeper:Apache旗下,开源(Java实现)


十九、分布式锁
  • lChubby是Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。
  • £GFS使用Chubby来选取一个GFS主服务器
  • £Bigtable使用Chubby指定一个主服务器并发现、控制与其相关的子表服务器。
  • l客户端采用DNS轮询方式定位主服务器
  • l客户端与服务器端采用长连接方式

  • lZookeeper分布式服务框架是 ApacheHadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
  • lZooKeeper是以FastPaxos算法为基础的.
  • l生产环境中至少要求安装三台以上Zookeeper服务器.
二十、分布式编程语言
  • lErlang:是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。
  • lScala:是一门静态语言,其结合了erlang和java的产物,运行于JVM之上,对java的接口做了继承和改善;Groovy的发明者之一,JamesStrachan,”如果当年我看到了《programmingscala》这本书,恐怕真的不会去发明Groovy了“
二十一、分布式内存队列
  • lFqueue:
£http://code.google.com/p/fqueue/ 
£国产
  • lMemcacheQ:
£http://memcachedb.org/memcacheq
£国产
  • lRabbitMQ:
£http://www.rabbitmq.com/  
£SpringSource支持
  • lBeanstalk:
£http://kr.github.com/beanstalkd/



PPT内容整理成文章太麻烦了。。。

原创粉丝点击