亚马逊数据库的用途有哪些,MongoDB 有哪些企业级应用
来源:整理 编辑:黑码技术 2024-06-18 07:51:26
1,MongoDB 有哪些企业级应用
Craiglist上使用MongoDB的存档数十亿条记录。 FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。更新频繁并mongodb优势建议使用缓存数据库mongodb搭配使用更新频繁数据使用缓存存储定间再同步mongodb
2,i2CDP一般都用于哪些场景
i2CDP在勒索病毒预防和恢复,数据本地/异地容灾,数据实时备份,数据库数据保护等场景都是可以使用的。1. 存储。ibm貌似才刚推出关于存储的计划。这样读写的速度更快,并且高容错,同时也可采用一般机器进行水平扩展,而不需要大型机这样的高性能机器。
2. 网页索引资料库。貌似搜索领域现在运用hadoop比较多。国内估计bat都在用吧,国外的典型应该是yahoo了。
3. 日志分析。类似日志分析这样的数据挖掘领域貌似也应用的较多。
4. 商品推荐。amazon用来进行协同过滤的商品推荐,个性化广告的推送也应该属于此类。
5. 垃圾邮件的识别与过滤。
3,服务器对电脑硬件有什么要求
服务器,也称伺服器,是提供计算服务的设备。在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。与个人使用的PC一样,服务器的构成包括处理器、硬盘、内存、系统总线等,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。对于硬件的需求,通常会根据服务器的用途有不同的搭配方式,一般情况下,为了使服务器的稳定性和处理能力,会使用企业级的较为可靠的高级别CPU,如E3 E5 I7等,在硬盘方面,需要多块硬盘组成阵列以便提高读取和写入的效率;在内存方面,如果服务器所承载的软件(如数据库,软件服务端等)不多的情况下,不需要太大内存,4G甚至2G均可;与PC不同的是,服务器一般并不需要输出高质量的影像所以无需高端的显示卡,通常都是采用自带集显;服务器的主板选择通常也有多种,可以根据需要选择如多CPU插槽,多PCI槽等各种类型。通常企业使用服务器都会选择一些知名厂家的品牌机型,如dell服务器系列,联想服务器系列,浪潮服务器系列等;品牌机厂商搭配的各类硬件相比自行组装要更为专业,而且有专门工程师能够提供相应售后,这一点是非常重要的。组装台式电脑,首先机箱的选择是很重要的,用什么样的机箱,决定了你的散热、维护以及硬件适配情况。其次,根据需求选择一块好的主板,针对主板的型号,可以配置什么样的cpu,应该选用哪一种cpu的频率。也就是讲究硬件的兼容性。接着就是内存方面的选择。一般内存方面都是根据主板、cpu频率选择容量,因为主板、cpu不行,内存无论配多大,作用都不大的。适合就好,不是说内存越大就越好的。因为很容易就浪费掉了。很多都用不上。接着机箱电源是很重要的,大功率的电源可以保证你的硬件运行不会出现电压不足的情况。至于硬盘方面,基本上都是看需求来选择了。还有一点,就是集成显卡和独显的问题,按照需求来选择。有时候有的需要玩大型游戏,那就要选择独立显卡,独立显卡的选择也间接影响到主板的选择。一般服务器要求的就是负载能力和稳定性,配置是按需来看,大公司的网站门户服务器一般都是群集来做的,单个服务器根本无法满足需求。跟据你的需求,从几千到几十万的都有。服务器对电脑硬件的要求主要是,高处理能力,高存储能力,高可靠性,高稳定性,高容错能力,易维护性等,向腾讯这样的公司,因其有大型网络游戏和QQ网络服务,其服务器可能是类似中国曙光,天河等的IBM,HP等公司的超级计算机,价格至少是几千万;一般小型公司所用的服务器,比较专业的,比如联想,浪潮,DELL,HP等公司都有销售,价格从几万到几十万不等,办大型网站,看你多大,有多少数据要处理,如果类似腾讯,魔兽等游戏网站,或者说京东,亚马逊等公司的,那没几百万到几千万是下不来的。很多大公司的服务器是采用磁盘阵列方式,可能一个硬盘柜里,就有几十块硬盘,再通过光纤和服务器主机相连。其它答案都是中小网络公司的模式,也建议你先从小网站开始。一般来讲服务器有一台就够,如果网站你看看有多大规模的公司了,一般三四个网站用一个服务器就够了,服务器有专门的服务器用主板,一般都是双CPU插槽的,对于CPU要求一定要是带三级缓存并能够超频。硬盘的要求就是一定要固态硬盘,速度极快才能保证传输速度跟得上数十万人浏览的速度。 但是如果你是个大公司的,那么需要服务器数量很多。自己攒或者品牌的都行 4-5万的都有
4,如何成为一个程序员
一个程序员应该具备的基础知识和概念:1、计算机是有什么组成的,CPU是什么东西,其工作原理是什么。2、机器语言和微指令集的概念。3、程序的概念。4、汇编语言是低级语言但不是机器语言。5、高级语言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中国软件业的英雄,你也写一门语言,最好不用英语) 6、编译程序和解释程序的概念和其原理。(编译器是高手和专家编写的)7、HTML、XML等是标识性语言。8、Prolog是人工智能语言。9、操作系统OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,还有一些实时OS,嵌入OS,编这些的绝对是高手)10、Windows编程说白了就是Windows API的调用。(中国的程序员很多只是会编windows程序,用的是VB,我的建议是这些程序员顶多只是低级编码员,我称其是coder)11、VC++、VB、BC、BCB、Delphi、VF等都只是编程的工具和环境,不是编程语言。12、面向结构的设计概念。13、面向对象的概念。(好好理解,兄弟,这个东西还是很重要的)14、软件工程的概念和原理。(如果你想当老总就需要好好研究了,系统分析员比编码员要高一个等级,薪水也高哟)15、数据库的概念。(要熟悉一些著名的数据库系统和语言的名字,如Orcle,SQL,DB2,DyBase等)16、了解网络概念。17、了解多媒体概念。18、熟悉和掌握数据结构和基本算法。如何才能成为一名真正的web程序员 程序员可以分为很多种,像unix程序员、windows程序员,或是c++程序员、delphi程序员,等等。今天我想谈的是web程序员,一名真正的web程序员应该懂得那些方面的知识,应该注意学习哪些东西。 也许有些朋友会说,我知道asp、jsp,会做网站、会做bbs,这应该叫web程序员了吧。确实,我承认,这些技术是一名web程序员应该具备的;但是,你如果仅懂得这些,却只能叫做asp程序员、jsp程序员,而不是真正意义上的web程序员。现在的世界是属于internet的,大部分的应用基于internet,大家可以想想,像yahoo、microsoft、amazon那样的网站,其访问量之大、应用之复杂,需要什么样的技术才可以支撑,难道仅仅是硬件的功劳么。 我想在windows平台下来谈谈web程序员应该掌握的技术 1. 首先,就是上面提到的各种脚本,asp、jsp、php等等,这些东西大同小异,基本可以举一反三。 2. 数据库, 相信做web的人肯定用过,像access、sql server、oracle。很多人会用各种数据库,但是仅限于写一些sql,select、update、insert,用ado来操作,如果这样,就算会用100种数据库又有什么用呢? 你应该考虑用户量、访问速度、内存消耗,这些东西和你的sql密切相关,我经常见到很多分页程序根本不去考虑数据库中有多少条数据,统统select出来,很明显,当你从数据库中查出1万条数据和100条数据,占用的内存是不同的。 另外,数据库连接池和事务机制是非常重要的,应该知道数据库用什么来保证事务,连接池如何实现,这些都是商务应用的关键。譬如,目前很多的应用服务,像weblogic、mts,都包含事务处理,可以说好的事务处理决定了他们的竞争力。 3. 组件技术 我想是现在的web应用推动了组件技术的发展。以前,从老式的静态库、动态库(dll),到现在的com/dcom,再到正在兴起中的web service;从单机调用,到基于内部网的分布式调用,到现在基于internet的分布式计算。现在的应用都是基于组件的n层结构,最明显的就是com和javabean。 这些东西体现了软件架构的发展,以前是基于单机的应用,然后是c/s结构,到现在的b/s结构。我记得李维曾经说过,程序员一定要注意软件技术的发展趋势,只有这样,才不至于被淹没在技术的洪流中。我想,作为web程序员,一定要明白com的原理,如何实现这种调用、如何进行分布式调用。说实话,我觉得com还是比较复杂的,否则微软为什么要提供atl和vb呢,要搞明白,应该学学c++,因为vc中提供的atl库可以很明显的说明com的内部运行机制。 4. 网络技术 这可以说是web程序员最应该懂得东西。起码,应该知道web服务器的机制,要明白http协议。就拿iis来说,要懂得web应用程序运行的进程安全和iis的关系,懂得isapi的作用。 如果有时间,就看看tcp/ip,看看winsock,这些都是底层的网络的东西。 我所说的这些都是基于微软技术下的东西,其他的像java方面的东西都可以对照参考,就不多说了,这也是我这几年来的一些心得。总之,学海无涯,每当接触一些新的东西,就会发现自己的不足,同时也就觉得基础知识的重要。说实话,像我们做应用开发,用别人的东西,在现在这种情况下,新的技术层出不穷,稍不注意就会被甩开,这也是没有办法的事情。
5,华为fusionsphere的openstack是基于什么版本
OpenStack其实有三个与存储相关的组件,这三个组件被人熟知的程度和组件本身出现时间的早晚是相符的,按熟悉程度排列如下:Swift--提供对象存储 (Object Storage),在概念上类似于Amazon S3服务,不过swift具有很强的扩展性、冗余和持久性,也兼容S3 APIGlance--提供虚机镜像(Image)存储和管理,包括了很多与Amazon AMI catalog相似的功能。(Glance的后台数据从最初的实践来看是存放在Swift的)。Cinder--提供块存储(Block Storage),类似于Amazon的EBS块存储服务,目前仅给虚机挂载使用。(Amazon一直是OpenStack设计之初的假象对手和挑战对象,所以基本上关键的功能模块都有对应项目。除了上面提到的三个组件,对于AWS中的重要的EC2服务,OpenStack中是Nova来对应,并且保持和EC2 API的兼容性,有不同的方法可以实现)三个组件中,Glance主要是虚机镜像的管理,所以相对简单;Swift作为对象存储已经很成熟,连CloudStack也支持它。Cinder是比较新出现的块存储,设计理念不错,并且和商业存储有结合的机会,所以厂商比较积极。Swift关于Swift的架构和部署讨论,除了官方网站,网上也有很多文章,这里就不重复.(也可以参考我之前在OpenStack中国行活动中上海站演讲的PPT)。从开发上看,最近也没有太大的结构性调整,所以我想主要说说比较适用的应用领域好了。从我所了解的实际案例来看,Swift出现的领域有4个,(应该还有更多,希望大家看到实际用例能够指教)1.网盘。Swift的对称分布式架构和多proxy多节点的设计导致它从基因里就适合于多用户大并发的应用模式,最典型的应用莫过于类似Dropbox的网盘应用,Dropbox去年底已经突破一亿用户数,对于这种规模的访问,良好的架构设计是能够支撑的根本原因。Swift的对称架构使得数据节点从逻辑上看处于同级别,每台节点上同时都具有数据和相关的元数据。并且元数据的核心数据结构使用的是哈希环,一致性哈希算法对于节点的增减都只需重定位环空间中的一小部分数据,具有较好的容错性和可扩展性。另外数据是无状态的,每个数据在磁盘上都是完整的存储。这几点综合起来保证了存储的本身的良好的扩展性。另外和应用的结合上,Swift是说HTTP协议这种语言的,这使得应用和存储的交互变得简单,不需要考虑底层基础构架的细节,应用软件不需要进行任何的修改就可以让系统整体扩展到非常大的程度。2.IaaS公有云Swift在设计中的线性扩展,高并发和多租户支持等特性,使得它也非常适合做为IaaS的选择,公有云规模较大,更多的遇到大量虚机并发启动这种情况,所以对于虚机镜像的后台存储具体来说,实际上的挑战在于大数据(超过G)的并发读性能,Swift在OpenStack中一开始就是作为镜像库的后台存储,经过RACKSpace上千台机器的部署规模下的数年实践,Swift已经被证明是一个成熟的选择。另外如果基于IaaS要提供上层的SaaS 服务,多租户是一个不可避免的问题,Swift的架构设计本身就是支持多租户的,这样对接起来更方便。3.备份归档RackSpace的主营业务就是数据的备份归档,所以Swift在这个领域也是久经考验,同时他们还延展出一种新业务--“热归档”。由于长尾效应,数据可能被调用的时间窗越来越长,热归档能够保证应用归档数据能够在分钟级别重新获取,和传统磁带机归档方案中的数小时而言,是一个很大的进步。4. 移动互联网和CDN移动互联网和手机游戏等产生大量的用户数据,数据量不是很大但是用户数很多,这也是Swift能够处理的领域。至于加上CDN,如果使用Swift,云存储就可以直接响应移动设备,不需要专门的服务器去响应这个HTTP的请求,也不需要在数据传输中再经过移动设备上的文件系统,直接是用HTTP 协议上传云端。如果把经常被平台访问的数据缓存起来,利用一定的优化机制,数据可以从不同的地点分发到你的用户那里,这样就能提高访问的速度,我最近看到Swift的开发社区有人在讨论视频网站应用和Swift的结合,窃以为是值得关注的方向。GlanceGlance比较简单,是一个虚机镜像的存储。向前端nova(或者是安装了Glance-client的其他虚拟管理平台)提供镜像服务,包括存储,查询和检索。这个模块本身不存储大量的数据,需要挂载后台存储(Swift,S3。。。)来存放实际的镜像数据。Glance主要包括下面几个部分:l API service: glance-api 主要是用来接受Nova的各种api调用请求,将请求放入RBMQ交由后台处理,。l Glacne-registry 用来和MySQL数据库进行交互,存储或者获取镜像的元数据,注意,刚才在Swift中提到,Swift在自己的Storage Server中是不保存元数据的,这儿的元数据是指保存在MySQL数据库中的关于镜像的一些信息,这个元数据是属于Glance的。l Image store: 后台存储接口,通过它获取镜像,后台挂载的默认存储是Swift,但同时也支持Amazon S3等其他的镜像。Glance从某种角度上看起来有点像虚拟存储,也提供API,可以实现比较完整的镜像管理功能。所以理论上其他云平台也可以使用它。Glance比较简单,又限于云内部,所以没啥可以多讨论的,不如看看新出来的块存储组件Cinder,目前我对Cinder基本的看法是总体的设计不错,细节和功能还有很多需要完善的地方,离一个成熟的产品还有点距离。CinderOpenStack到F版本有比较大的改变,其中之一就是将之前在Nova中的部分持久性块存储功能(Nova-Volume)分离了出来,独立为新的组件Cinder。它通过整合后端多种存储,用API接口为外界提供块存储服务,主要核心是对卷的管理,允许对卷,卷的类型,卷的快照进行处理。Cinder包含以下三个主要组成部分API service:Cinder-api 是主要服务接口, 负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。 Cinder目前提供Volume API V2Scheduler service: 处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。目前版本的cinder仅仅提供了一个Simple Scheduler, 该调度器选择卷数量最少的一个活跃节点来创建卷。Volume service: 该服务运行在存储节点上,管理存储空间,塔处理cinder数据库的维护状态的读写请求,通过消息队列和直接在块存储设备或软件上与其他进程交互。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。Cinder通过添加不同厂商的指定drivers来为了支持不同类型和型号的存储。目前能支持的商业存储设备有EMC 和IBM的几款,也能通过LVM支持本地存储和NFS协议支持NAS存储,所以Netapp的NAS应该也没问题,好像华为也在努力中。我前段时间还在Cinder的blueprints看到IBM的GPFS分布式文件系统,在以后的版本应该会添加进来到目前为止,Cinder主要和Openstack的Nova内部交互,为之提供虚机实例所需要的卷Attach上去,但是理论上也可以单独向外界提供块存储。部署上,可以把三个服务部署在一台服务器,也可以独立部署到不同物理节点现在Cinder还是不够成熟,有几个明显的问题还没很好解决,一是支持的商业存储还不够多,而且还不支持FC SAN,另外单点故障隐患没解决,内部的schedule调度算法也太简单。另外由于它把各种存储整合进来又加了一层,管理倒是有办法了,但是效率肯定是有影响,性能肯定有损耗,但这也是没办法的事了。Openstack通过两年多发展,变得越来越庞大。目前光存储就出现了三种:对象存储、镜像存储和块存储。这也是为了满足更多不同的需求,体现出开源项目灵活快速的特性。总的说来,当选择一套存储系统的时候,如果考虑到将来会被多个应用所共同使用,应该视为长期的决策。Openstack作为一个开放的系统,最主要是解决软硬件供应商锁定的问题,可以随时选择新的硬件供应商,将新的硬件和已有的硬件组成混合的集群,统一管理,当然也可以替换软件技术服务的提供商,不用动应用。这是开源本身的优势!
文章TAG:
亚马逊 数据 数据库 用途 亚马逊数据库的用途有哪些 有哪些企业级应用