版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库中间件使用场景分析数据库场景比较PS:涉及到金钱方面的事务处理,建议使用Oracle。数据库优点缺点场景Oracle基本适合所有业务维护成本和License成本高电信,电力、银行、支付以及涉及到金钱方面等综合性企业。(事务型)MySQL结构简单,部署方便,社区成熟,稳定性非常好,良好的事务和SQL支持扩展性差,软件本身性能瓶颈大,没有成熟的集群方案。Schema复制。百亿以内的数据存储,对数据安全性和事务支持有要求。主要存储对数据状态有要求和更新频繁的数据。(事务型)MongoDBSchema--free,快速开发,本身支持集群如sharding,支持空间索引等;锁的粒度大,并发性能差,性能受限于内存,解决方案有待考验。1.LBS(基于位置服务;地理坐标,或大地坐标),缓存,小文件存储。2.CMS内容管理系统;3.社交网络图数据库设计.4.MongoDB主要用于存储计费数据、日志数据和流水数据Hbase基于Hadoop生态系统,良好的扩展性,高写入能力。数据自动分片。架构复杂,维护成本高。搜索,数据写入非常高,监控数据。1.典型互联网搜索问题2.捕获增量数据3.内容服务4.信息交换HBase主要用来做数据分析和存储大数据内容。Redis高性能,部署简单,非常的数据类型支持,支持数据持久化,集群方案支持。性能受限于内存,单进程问题。适合小数据高读写场景。缓存服务。1.保存点击数据(计数器)2.在哈希表中保存用户信息3.用集合保存社交网站圈子数据MySQL还是PostgreSQL?1、如果你的应用对数据的完整性和严肃性要求不高,但是追求处理的高速度。例如是一个论坛和社区,你应该使用MySQL。2、你的应用是一个严肃的商业应用,对数据完整性要求很高。而且你希望对一些商业数据逻辑进行很好的封装,例如是一个网上银行,你应该使用PostgreSQL。3、你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL。4、等等
从Oracle转向MySQL主要是出于三个方面的原因:第一,降低运维成本。Oracle数据库自动化运维实现难度和成本较高,而MySQL运维自动化难度和成本相对较低,当数据库实例不断成倍增长的时候,使用MySQL可以在有限人力的情况下维护更多的数据库实例。第二,降低软件成本。OracleLicense成本较高,MySQL及其分支目前是免费的。第三,提高可扩展性。MySQL是开源数据库,便于有技术能力的公司根据业务发展情况自己开发定制一些数据库周边服务,使数据库使用的扩展性提高,而Oracle对这方面的支持比较一般。
Hbase场景说明捕获增量数据数据通常是细水长流,累加到已有数据库以备将来使用,例如分析,处理和服务。许多HBase使用场景属于这个类别——使用HBase作为数据存储,捕获来自于各种数据源的增量数据。例如,这种数据源可能是网页爬虫,可能是记录用户看了什么广告和多长时间的广告效果数据,也可能是记录各种参数的时间序列数据。我们讨论几个成功的使用场景和公司。1.捕获监控参数服务于数百万用户的WEB产品的后台基础架构一般都有数百或数千台服务器。这些服务器承担了各种功能——服务流量,捕获日志,存储数据,处理数据等等。为了保持产品正常运行,监控服务器和上面运行软件的健康状态是至关重要的(从OS到用户交互应用)。大规模监控整个环境需要能够采集和存储来自于不同数据源的各种参数的监控系统。每个公司有自己的办法。一些公司使用商业工具来收集和展示参数;而其他一些公司采用开源框架。2.捕获用户交互数据捕获监控数据是一种使用方式。还有一种是捕获用户交互数据。如何跟踪数百万用户在网站上的活动?怎么知道哪一个网站功能是最受欢迎的?怎样使得这一次的网页浏览直接影响到下一次?例如,谁看了什么?某个按钮被点击了多少次?还记得Facebook和Stumble里的Like按钮和StumbleUpon里的+1按钮吗?是不是听起来像是一个计数问题?每次用户Like一个特定主题计数器增加一次。
3.广告效果和点击流过去的十年,在线广告成为互联网产品的一个主要收入来源。提供免费服务给用户,在用户使用服务的时侯投放广告给目标用户。这种精准投放需要针对用户交互数据做详细的捕获和分析,以便于理解用户的特征。基于这种特征,选择并投放广告。精细的用户交互数据带来更好的模型,进而导致更好的广告投放效果和更多的收入。但这类数据有两个特点:它以连续流的形式出现,它很容易按用户划分。理想情况下,这种数据一旦产生就能够马上使用,用户特征模型可以没有延迟地持续优化——也就是说,以在线方式使用。
4.在线VS离线系统在线和离线的术语多次出现。在线系统需要低延迟。某些情况下,系统哪怕给出没有答案的响应,也要比花了很长时间给出正确答案的响应好。你可以把在线系统想象为一个跳着脚的没有耐心的用户。离线系统不需要低延迟,用户可以等待答案,不期待马上给出响应。当实现应用系统时在线或者离线的目标影响着许多技术决策。HBase是一个在线系统。和HadoopMapReduce的紧密结合又赋予它离线访问的能力。
HBase非常适合收集这种用户交互数据,HBase已经成功地应用在这种场合,它可以增量捕获第一手点击流和用户交互数据,然后用不同处理方式(MapReduce是其中一种)来处理数据(清理、装饰、使用数据)。************************************************内容服务一方面是用户使用内容UserConsumingContent,对应另一面是用户生成内容UserGenerateContent。Tweete、Facebook帖子、Instagram图片和微博等都是这样的例子。他们相同的地方是使用和生成了许多内容。大量用户通过应用系统来使用和生成内容,而这些应用系统需要Hbase作为基础。集中的内容系统系统CMS可以存储内容和提供服务。但是当用户越来越多,生成内容越来越多的时候,就需要一个更具扩展性的CMS解决方案。这种可扩展的CMS往往使用Hbase作为基础,再加上其他的开源框架,例如Solr,构成一个完整的功能组合。(1)URL短链最近一段时间URL短链非常流行,许多类似产品破土而出。StumbleUpon使用名字为su.pr.的短链产品,这个产品以HBase为基础。这个产品用来缩短URL,存储大量的短链以及和原始长链接的映射关系,HBase帮助产品实现扩展能力。(2)用户模型服务经过HBase处理过的内容往往并不直接提交给用户使用,而是用来决定应该提交给用户什么内容。这种中间处理数据用来丰富用户的交互。还记得前面提到的广告服务场景里的用户模式吗?用户模式(或者说模型)就是来自于HBase。这种模型多种多样,可以用于多种不同场景,例如,针对特定用户投放什么广告的决定,用户在电商门户购物时实时报价的决定,用户在搜索引擎检索时增加背景信息和关联内容,等等。很多这种使用案例可能不便于公开讨论,说多了我们就麻烦了。当用户在电商网站上发生交易时,用户模型服务可以用来实时报价。这种模型需要基于不断产生的新用户数据持续优化。***********************************************************信息交换各种社交网络破土而出,世界变得越来越小。社叫网站的一个重要作用就是帮助人们进行交互。有时交互在群组内发生(小规模和大规模);有时交互在两个个人之见发生。想想看,数亿人通过社交网络进行对话的场面。只是和远处的人通话是不够的,人们还想看看和其他人通话的历史记录。社交网络公司感到幸运的是,存储很廉价,大数据领域的创新可以帮助他们充分利用廉价的存储。Facebook短信系统经常被公开讨论,他也可能极大地驱动了HBase的发展。当你使用Facebook时,某个时候你可能会收到或者发送短信给你的朋友。Facebook的这个特性完全依赖于HBase。用户读写的所有短信都存储在HBase里。支持Facebook短信的系统需要具备:高的写吞吐量,极大的表,数据中心内的强一致性。除了短信系统之外,使用HBase的其他应用系统另外要求:高的读吞吐量,计数器吞吐量,自动分库。工程师们发现HBase是个理想的解决方案,因为他支持所有这些要求,他拥有一个活跃的用户社区,Facebook运营团队在Hadoop部署上有丰富经验,等等。在“HadoopgoesrealtimeatFacebook”这篇文章里,Facebook工程师解释了这个决定背后的逻辑和显示了他们使用Hadoop和HBase建设在线系统的经验。
ZooKeeper实现的案例HDFSHA(QJM)Hadoop2.x之前的版本,HDFS集群中Namenode是整个集群的中央元数据存储和服务节点,它存在SPOF的问题。在2.x版本中,提出了各种HA方案,避免Namenode的SPOF问题,其中基于QJM(QuorumJournalManager)的方案可以解决这个问题:使用QJM的方案中,HDFS集群中存在两类节点,一类是Namenode节点(包括Active状态的Namenode,和Standby状态的Namenode),另一类是JournalNode,进行容错。当Active状态的Namenode元数据发生改变时,通过JournalNode进程(ZooKeeper集群中)来监视这种变化,然后同步到Standby状态的Namenode节点(实际上同步的是EditLog镜像文件内容的变更)。当Active状态的节点发生故障后,Standby节点的Namenode自动切换,并接管HDFS集群中Active状态Namenode的服务,用来向客户端提供元数据服务。SolrSolr是一个开源的分布式搜索引擎,支持索引的分片和复制,可以根据需要来线性增加节点,扩展集群。Solr使用ZooKeeper主要实现如下功能:配置文件的管理:每个Collection都有对应的配置文件,多个分片共享配置文件(schema.xml、solrconfig.xml)Collection管理:一个Solr集群可以有多个逻辑上独立的Collection,每个Collection又包括多个分片和副本集群节点管理:Solr集群中有哪些活跃的节点可以使用,每个节点上都有Collection的分片(Shard)Leader分片选举:一个Collection的多个分片可以设置冗余的副本,一个分片的多个副本中只有一个Leader可以进提供服务,如果某个存储Leader分片的节点宕机,Solr基于ZooKeeper来重新选出一个Leader分片,持续提供服务HBaseHBase是一个基于Hadoop平台的开源NoSQL数据库,它使用ZooKeeper主要实现如下功能:Master选举:HBase基于Master-Slave模式架构,可以有多个HMaster,使用ZooKeeper实现了SPOF下Master的选举租约管理:客户端与RegionServer交互时,会生成租约,该租约对象具有有效期表元数据管理:HBase中包括用户表及其两个特殊的表:-ROOT-表和.META.表(例如,管理-ROOT-表中location信息,一个-ROOT-表只有一个Region,它保存了RegionServer的地址信息。)协调RegionServer节点:数据变更会通过ZooKeeper同步复制到其他节点LilyLily是一个分布式数据管理平台,它基于Hadoop、HBase、Solr、ZooKeeper实现。使用ZooKeeper来注册LilyNode,从而管理集群节点的状态信息。DubboDubbo是阿里巴巴开源的分布式服务框架,它可以选择使用ZooKeeper作为服务注册中心。Dubbo服务基于Provider-Consumer模型,在服务发布的时候可以选择使用ZooKeeper作为注册中心来管理注册的服务,包括Provider发布的服务和Consumer订阅的服务。KattaKatta实现了Lucene的分布式索引,能够提供数据的实时访问。Katta使用ZooKeeper实现了集群节点的管理,Master的选举,以及Lucene索引的管理。StromStorm流式计算框架使用ZooKeeper来协调整个计算集群,Storm计算集群存在Nimbus和Supervisor两类节点。Nimbus负责分配任务(Topology),将任务信息写入ZooKeeper存储,然后Supervisor从ZooKeeper中读取任务信息。另外,Nimbus也监控集群中的计算任务节点,Supervisor也会发送心跳信息(包括状态信息)到ZooKeeper中,使得Nimbus可以实现状态的监控,任何计算节点出现故障,只要重新启动之后,继续从ZooKeeper中获取数据即可继续执行计算任务。BookKeeperBookKeeper是ApacheZooKeeper项目的一个子项目。它是一个用来可靠地记录流数据的系统,主要用于存储WAL(WriteAheadLog)。我们知道,HadoopNamenode用来存储HDSF集群的元数据,其中存在一个用于写就花数据的EditLog文件,和一个存在于内存中的FsImage镜像,每当客户端与HDFS集群交互时,对于集群中数据的变更都会记录在Namen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物标志物在药物临床试验中的药物研发技术研究
- 生物材料支架在皮肤再生中的临床应用推广策略
- 生物材料临床应用中的卫生技术评估与医保准入策略
- 生物制品稳定性指示分析方法开发与验证
- 生物制剂失应答后IBD的特殊人群用药策略-1
- 食品检验员面试题及质量标准解析
- 副总经理面试题集及答案
- 甜味剂在儿童糖尿病饮食中的安全性
- 保险代理人职位面试问题集
- 助航灯光设备维修技能考试题库
- 2025房屋买卖合同公证书范文
- 气管切开患者的管理与康复治疗
- 《中国急性肾损伤临床实践指南(2023版)》解读
- 2025高考化学专项复习:60个高中化学常考实验
- 江苏自考现代企业经营管理-练习题(附答案)27875
- 场地空地出租合同范本
- 大学体育与科学健身智慧树知到期末考试答案2024年
- 月子中心员工礼仪培训方案
- 电镀制造成本预估表
- 2023大型新能源集控中心建设项目技术方案
- 2023年研究生类社会工作硕士(MSW)考试题库
评论
0/150
提交评论