“云”中那点事!
来源:互联网 发布: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内容整理成文章太麻烦了。。。
- “云”中那点事!
- PHP开发中编码那点事
- mysql中事务处理那点事
- Java线程中interrupt那点事
- java中关于数组那点事
- JavaScript中面向对象那点事
- ios开发中动画那点事
- PHP中关于composer那点事
- Java中String的那点事!
- OpenStack 谈谈云计算那点事
- 云计算和DevOps那点事
- 面试那点事
- 公司那点事
- 编程那点事!!
- 公务员那点事
- 毕业那点事
- JVM 那点事
- C++那点事
- C与c++语言中的转义字符有哪些?
- 那时,我们正年轻
- 操作系统的安装与启动基本原理
- inline 内联函数详解 内联函数与宏定义的区别
- android中判断sim卡状态和读取联系人资料的方法
- “云”中那点事!
- ARCGIS DESKTOP 9.3 安装破解完整清晰步骤【转】
- Linux下3389访问windows
- 信号压缩:增量压缩
- 冒泡排序,选择排序,希尔排序
- 关于爱情
- Linux下重置MySQL root密码
- 右键添加(注册表)项大全
- UVa 437 - The Tower of Babylon