扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1 理解ACID与BASE的区别(ACID是关系型数据库强一致性的四个要求,而BASE是NoSQL数据库通常对可用性及一致性的弱要求原则,它们的意思分别是,ACID:atomicity, consistency, isolation, durability;BASE:Basically Available, Soft-state, Eventually Consistent。同时有意思的是ACID在英语里意为酸,BASE意思为碱)
坡头网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
2 理解持久化与非持久化的区别。这么说是因为有的NoSQL系统是纯内存存储的。
3 你必须意识到传统有关系型数据库与NoSQL系统在数据结构上的本质区别。传统关系型数据库通常是基于行的表格型存储,而NoSQL系统包括了列式存储(Cassandra)、key/value存储(Memcached)、文档型存储(CouchDB)以及图结构存储(Neo4j)
4与传统关系数据库有统一的SQL语言操作接口不同,NoSQL系统通常有自己特有的API接口。
5 在架构上,你必须搞清楚,NoSQL系统是被设计用于成百上千台机器的集群中的,而非共享型数据库系统的架构。
6在NoSQL系统中,可能你得习惯一下不知道你的数据具体存在何处的情况。
7 在NoSQL系统中,你最好习惯它的弱一致性。”eventually consistent”(最终一致性)正是BASE原则中的重要一项。比如在Twitter,你在Followers列表中经常会感受到数据的延迟。
8 在NoSQL系统中,你要理解,很多时候数据并不总是可用的。
9 你得理解,有的方案是拥有分区容忍性的,有的方案不一定有。
云计算架构主要可分为四层,其中有三层是横向的,分别是显示层、中间件层和基础设施层,通过这三层技术能够提供非常丰富的云计算能力和友好的用户界面,还有一层是纵向的,称为管理层,是为了更好地管理和维护横向的三层而存在的。下面介绍每个层次的作用和属于这个层次的主要技术。
显示层
这层主要是用于以友好的方式展现用户所需的内容,并会利用到下面中间件层提供的多种服务,主要有五种技术:
HTML:标准的Web页面技术,现在主要以HTML4为主,但是将要推出的HTML5会在很多方面推动Web页面的发展,比如视频和本地存储等方面。
JavaScript:一种用于Web页面的动态语言,通过JavaScript,能够极大地丰富Web页面的功能,最流行的JS框架有jQuery和Prototype。
CSS:主要用于控制Web页面的外观,而且能使页面的内容与其表现形式之间进行优雅地分离。
Flash:业界最常用的RIA(Rich Internet Applications)技术,能够在现阶段提供HTML等技术所无法提供的基于Web的富应用,而且在用户体验方面,非常不错。
Silverlight:来自业界巨擎微软的RIA技术,虽然其现在市场占有率稍逊于Flash,但由于其可以使用C#来进行编程,所以对开发者非常友好。
在显示层,大多数云计算产品都比较倾向HTML,、JavaScript和CSS这对黄金组合,但是Flash和Silverlight等RIA技 术也有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后使用到Silverlight。
中间件层
这层是承上启下的,它在下面的基础设施层所提供资源的基础上提供了多种服务,比如缓存服务和REST服务等,而且这些服务即可用于支撑显示层,也可以直接让用户调用,并主要有五种技术:
REST:通过REST技术,能够非常方便和优雅地将中间件层所支撑的部分服务提供给调用者。
多租户:就是能让一个单独的应用实例可以为多个组织服务,而且保持良好的隔离性和安全性,并且通过这种技术,能有效地降低应用的购置和维护成本。
并行处理:为了处理海量的数据,需要利用庞大的X86集群进行规模巨大的并行处理,Google的MapReduce是这方面的代表之作。
应用服务器:在原有的应用服务器的基础上为云计算做了一定程度的优化,比如用于Google App Engine的Jetty应用服务器。
分布式缓存:通过分布式缓存技术,不仅能有效地降低对后台服务器的压力,而且还能加快相应的反应速度,最著名的分布式缓存例子莫过于Memcached。
对于很多PaaS平台,比如用于部署Ruby应用的Heroku云平台,应用服务器和分布式缓存都是必备的,同时REST技术也常用于对外的接口, 多租户技术则主要用于SaaS应用的后台,比如用于支撑Salesforce的Sales Cloud等应用的Force.com多租户内核,而并行处理技术常被作为单独的服务推出,比如Amazon的Elastic MapReduce。
基础设施层
这层作用是为给上面的中间件层或者用户准备其所需的计算和存储等资源,主要有四种技术:
虚拟化:也可以理解它为基础设施层的“多租户”,因为通过虚拟化技术,能够在一个物理服务器上生成多个虚拟 机,并且能在这些虚拟机之间能实现全面的隔离,这样不仅能减低服务器的购置成本,而且还能同时降低服务器的运维成本,成熟的X86虚拟化技术有 VMware的ESX和开源的Xen。
分布式存储:为了承载海量的数据,同时也要保证这些数据的可管理性,所以需要一整套分布式的存储系统,在这方面,Google的GFS是典范之作。
关系型数据库:基本是在原有的关系型数据库的基础上做了扩展和管理等方面的优化,使其在云中更适应。
NoSQL:为了满足一些关系数据库所无法满足的目标,比如支撑海量的数据等,一些公司特地设计一批不是基于关系模型的数据库,比如Google的BigTable和Facebook的Cassandra等。
现在大多数的IaaS服务都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技术的vCloud,同时业界也有几个 基于关系型数据库的云服务,比如Amazon的RDS(Relational Database Service)和Windows Azure SDS(SQL Data Services)等。关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术之上的,而Amazon则推出基于NoSQL技术的Simple DB。
管理层
这层是为横向的三层服务的,并给这三层提供多种管理和维护等方面的技术,主要有下面这六个方面:
帐号管理:通过良好的帐号管理技术,能够在安全的条件下方便用户地登录,并方便管理员对帐号的管理。
SLA监控:对各个层次运行的虚拟机,服务和应用等进行性能方面的监控,以使它们都能在满足预先设定的SLA(Service Level Agreement)的情况下运行。
计费管理:也就是对每个用户所消耗的资源等进行统计,来准确地向用户索取费用。
安全管理:对数据,应用和帐号等IT资源采取全面地保护,使其免受犯罪分子和恶意程序的侵害。
负载均衡:通过将流量分发给一个应用或者服务的多个实例来应对突发情况。 运维管理:主要是使运维操作尽可能地专业和自动化 ,从而降低云计算中心成本。
负载均衡:通过将流量分发给一个应用或者服务的多个实例来应对突发情况。
运维管理:主要是使运维操作尽可能地专业和自动化,从而降低云计算中心的运维成本。
现在的云计算产品在帐号管理,计费管理和负载均衡这三个方面大都表现地不错,在这方面最突出的例子就是Amazon 的EC2,但可惜的是,大多数产品在SLA监控,安全管理和运维管理等方面还有所欠缺。
举例
接下来,将以Salesforce的Sales Cloud和Google的App Engine这两个著名的云计算产品为例,来帮助大家理解本文所提到的云计算架构:
Salesforce Sales Cloud
也就是之前的Salesforce CRM(客户关系管理),属于云计算中的SaaS层,主要是通过在云中部署可定制化的CRM应用,来让企业用户在很低初始投入的情况下使用上CRM,并且 可根据自身的流程来进行灵活地定制,而且只需接入网络就能使用。在技术层面上大致的架构:
采用的主要技术:
显示层:基于HTML、JavaScript和CSS这对黄金组合。
中间件层:在此层,Salesforce引入了多租户内核和为支撑此内核运行而经过定制的应用服务器。
基础设施层:虽然在后端还是使用在企业环境中很常见的Oracle数据库,但是其为了支撑上层的多租户内核做了很多的优化。
管理层:在安全管理方面,Salesforce提供了多层保护,并支持SSL加密等技术,除此之外,其还在帐号管理、计费管理和负载均衡这三方面有不错地支持。
Google App Engine
App Engine属于云计算中的PaaS层,其主要提供一个平台,来让用户在Google强大的基础设施上部署和运行应用程序,同时App Engine会根据应用所承受的负载来对应用所需的资源进行调整,并免去用户对应用和服务器等的维护工作,而且支持Java和Python这两种语言。由 于App Engine属于PaaS平台,所以关于显示层的技术选择由应用的自身需要而定,与App Engine无关,关于App Engine在技术层面上大致的架构。
采用的主要技术:
中间件层:既有经过定制化的应用服务器,比如上面已经提到过的Jetty,也提供基于Memcached的分布式缓存服务。
基础设施层: 在分布式存储GFS的基础上提供了NoSQL数据库BigTable来对应用的数据进行持久化。
管理层:由于App Engine是基于Google强大的分布式基础设施,使其在运维管理技术方面非常出色,同时其计费管理能做到非常细粒度的API级计费,而且App Engine在帐号管理和负载均衡这两方面都有非常好地支持。
以上内容分析源自OFweek物联网,希望对大家有帮助。
NewSQL是对一类现代关系型数据库的统称,这类数据库对于一般的OLTP读写请求提供可横向扩展的性能,同时支持事务的ACID保证。这些系统既拥有NoSQL数据库的扩展性,又保持传统数据库的事务特性。NewSQL重新将“应用程序逻辑与数据操作逻辑应该分离”的理念带回到现代数据库的世界,这也验证了历史的发展总是呈现出螺旋上升的形式。
在21世纪00年代中,出现了许多数据仓库系统 (如 Vertica,Greeplum 和AsterData),这些以处理OLAP 请求为设计目标的系统并不在本文定义的NewSQL范围内。OLAP 数据库更关注针对海量数据的大型、复杂、只读的查询,查询时间可能持续秒级、分钟级甚至更长。
NoSQL的拥趸普遍认为阻碍传统数据库横向扩容、提高可用性的原因在于ACID保证和关系模型,因此NoSQL运动的核心就是放弃事务强一致性以及关系模型,拥抱最终一致性和其它数据模型 (如 key/value,graphs 和Documents)。
两个最著名的NoSQL数据库就是Google的BigTable和Amazon的Dynamo,由于二者都未开源,其它组织就开始推出类似的开源替代项目,包括Facebook的 Cassandra (基于BigTable和Dynamo)、PowerSet的 Hbase(基于BigTable)。有一些创业公司也加入到这场NoSQL运动中,它们不一定是受BigTable和Dynamo的启发,但都响应了NoSQL的哲学,其中最出名的就是MongoDB。
在21世纪00年代末,市面上已经有许多供用户选择的分布式数据库产品。使用NoSQL的优势在于应用开发者可以更关注应用逻辑本身,而非数据库的扩展性问题;但与此同时许多应用,如金融系统、订单处理系统,由于无法放弃事务的一致性要求被拒之门外。
一些组织,如Google,已经发现他们的许多工程师将过多的精力放在处理数据一致性上,这既暴露了数据库的抽象、又提高了代码的复杂度,这时候要么选择回到传统DBMS时代,用更高的机器配置纵向扩容,要么选择回到中间件时代,开发支持分布式事务的中间件。这两种方案成本都很高,于是NewSQL运动开始酝酿。
NewSQL数据库设计针对的读写事务有以下特点:
1、耗时短。
2、使用索引查询,涉及少量数据。
3、重复度高,通常使用相同的查询语句和不同的查询参考。
也有一些学者认为NewSQL系统是特指实现上使用Lock-free并发控制技术和share-nothing架构的数据库。所有我们认为是NewSQL的数据库系统确实都有这样的特点。
阿里云的产品致力于提升运维效率,降低IT成本,令使用者更专注于核心业务发展。
云服务器ECS
一种简单高效,处理能力可弹性伸缩的计算服务。助您快速构建更稳定、安全的应用。提升运维效率,降低IT成本,使您更专注于核心业务创新。
云引擎ACE
一种弹性、分布式的应用托管环境,支持Java、PHP、Python、Node.js等多种语言环境。帮助开发者快速开发和部署服务端应用程序,并简化系统维护工作。搭载了丰富的分布式扩展服务,为应用程序提供强大助力。
弹性伸缩
根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务。其能够在业务增长时自动增加ECS实例,并在业务下降时自动减少ECS实例。
一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。基于飞天分布式系统和高性能存储,RDS支持MySQL、SQL Server、PostgreSQL和PPAS(高度兼容Oracle)引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案。
开放结构化数据服务OTS
构建在阿里云飞天分布式系统之上的 NoSQL数据库服务,提供海量结构化数据的存储和实时访问。OTS 以实例和表的形式组织数据,通过数据分片和负载均衡技术,实现规模上的无缝扩展。应用通过调用 OTS API / SDK 或者操作管理控制台来使用 OTS 服务。
开放缓存服务OCS
在线缓存服务,为热点数据的访问提供高速响应。
键值存储KVStore for Redis
兼容开源Redis协议的Key-Value类型在线存储服务。KVStore支持字符串、链表、集合、有序集合、哈希表等多种数据类型,及事务(Transactions)、消息订阅与发布(Pub/Sub)等高级功能。通过内存+硬盘的存储方式,KVStore在提供高速数据读写能力的同时满足数据持久化需求。
数据传输
支持以数据库为核心的结构化存储产品之间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。 数据传输的底层数据流基础设施为阿里双11异地双活基础架构, 为数千下游应用提供实时数据流,已在线上稳定运行3年之久。
对象存储OSS
阿里云对外提供的海量、安全和高可靠的云存储服务。RESTFul API的平台无关性,容量和处理能力的弹性扩展,按实际容量付费真正使您专注于核心业务。
归档存储
作为阿里云数据存储产品体系的重要组成部分,致力于提供低成本、高可靠的数据归档服务,适合于海量数据的长期归档、备份。
消息服务
一种高效、可靠、安全、便捷、可弹性扩展的分布式消息与通知服务。消息服务能够帮助应用开发者在他们应用的分布式组件上自由的传递数据,构建松耦合系统。
CDN
内容分发网络将源站内容分发至全国所有的节点,缩短用户查看对象的延迟,提高用户访问网站的响应速度与网站的可用性,解决网络带宽小、用户访问量大、网点分布不均等问题。 负载均衡
对多台云服务器进行流量分发的负载均衡服务。负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。
专有网络VPC
帮助基于阿里云构建出一个隔离的网络环境。可以完全掌控自己的虚拟网络,包括选择自有 IP 地址范围、划分网段、配置路由表和网关等。也可以通过专线/VPN等连接方式将VPC与传统数据中心组成一个按需定制的网络环境,实现应用的平滑迁移上云。
开放数据处理服务ODPS
由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域。阿里巴巴的离线数据业务都运行在ODPS上。
采云间DPC
基于开放数据处理服务(ODPS)的DW/BI的工具解决方案。DPC提供全链路的易于上手的数据处理工具,包括ODPS IDE、任务调度、数据分析、报表制作和元数据管理等,可以大大降低用户在数据仓库和商业智能上的实施成本,加快实施进度。天弘基金、高德地图的数据团队基于DPC完成他们的大数据处理需求。
批量计算
一种适用于大规模并行批处理作业的分布式云服务。批量计算可支持海量作业并发规模,系统自动完成资源管理,作业调度和数据加载,并按实际使用量计费。批量计算广泛应用于电影动画渲染,生物数据分析,多媒体转码,金融保险分析等领域。
数据集成
阿里集团对外提供的稳定高效、弹性伸缩的数据同步平台,为阿里云大数据计算引擎(包括ODPS、分析型数据库、OSPS)提供离线(批量)、实时(流式)的数据进出通道。
DDoS防护服务
针对阿里云服务器在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠。免费为阿里云上客户提供最高5G的DDoS防护能力。
安骑士
阿里云推出的一款免费云服务器安全管理软件,主要提供木马文件查杀、防密码暴力破解、高危漏洞修复等安全防护功能。
阿里绿网
基于深度学习技术及阿里巴巴多年的海量数据支撑, 提供多样化的内容识别服务,能有效帮助用户降低违规风险。
安全网络
一款集安全、加速和个性化负载均衡为一体的网络接入产品。用户通过接入安全网络,可以缓解业务被各种网络攻击造成的影响,提供就近访问的动态加速功能。
DDoS高防IP
针对互联网服务器(包括非阿里云主机)在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠。
网络安全专家服务
在云盾DDoS高防IP服务的基础上,推出的安全代维托管服务。该服务由阿里云云盾的DDoS专家团队,为企业客户提供私家定制的DDoS防护策略优化、重大活动保障、人工值守等服务,让企业客户在日益严重的DDoS攻击下高枕无忧。
服务器安全托管
为云服务器提供定制化的安全防护策略、木马文件检测和高危漏洞检测与修复工作。当发生安全事件时,阿里云安全团队提供安全事件分析、响应,并进行系统防护策略的优化。
渗透测试服务
针对用户的网站或业务系统,通过模拟黑客攻击的方式,进行专业性的入侵尝试,评估出重大安全漏洞或隐患的增值服务。
态势感知
专为企业安全运维团队打造,结合云主机和全网的威胁情报,利用机器学习,进行安全大数据分析的威胁检测平台。可让客户全面、快速、准确地感知过去、现在、未来的安全威胁。
云监控
一个开放性的监控平台,可实时监控您的站点和服务器,并提供多种告警方式(短信,旺旺,邮件)以保证及时预警,为您的站点和服务器的正常运行保驾护航。
访问控制
一个稳定可靠的集中式访问控制服务。您可以通过访问控制将阿里云资源的访问及管理权限分配给您的企业成员或合作伙伴。 日志服务
针对日志收集、存储、查询和分析的服务。日志服务可收集云服务和应用程序生成的日志数据并编制索引,提供实时查询海量日志的能力。
开放搜索
解决用户结构化数据搜索需求的托管服务,支持数据结构、搜索排序、数据处理自由定制。 开放搜索为您的网站或应用程序提供简单、低成本、稳定、高效的搜索解决方案。
媒体转码
为多媒体数据提供的转码计算服务。它以经济、弹性和高可扩展的音视频转换方法,将多媒体数据转码成适合在PC、TV以及移动终端上播放的格式。
性能测试
全球领先的SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。性能测试包含两个版本,Lite版适合于业务场景简单的系统,免费使用;企业版适合于承受大规模压力的系统,同时每月提供免费额度,可以满足大部分企业客户。
移动数据分析
一款移动App数据统计分析产品,提供通用的多维度用户行为分析,支持日志自主分析,助力移动开发者实现基于大数据技术的精细化运营、提升产品质量和体验、增强用户黏性。 阿里云旗下万网域名,连续19年蝉联域名市场NO.1,近1000万个域名在万网注册!除域名外,提供云服务器、云虚拟主机、企业邮箱、建站市场、云解析等服务。2015年7月,阿里云官网与万网网站合二为一,万网旗下的域名、云虚拟主机、企业邮箱和建站市场等业务深度整合到阿里云官网,用户可以网站上完成网络创业的第一步。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流