阅读更多
MongoDB可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。(摘自MongoDB官网

为了帮助大家更加系统全面地学习MongoDB知识,特创建MongoDB知识库,集中挑选优质内容(文章、图书、视频)呈现给大家。

引用
唐建法,MongoDB官方大中华区首席架构师,中文社区创始人,曾在美国惠普及联邦快递担任技术负责人和首席架构师等职。

你关注的MongoDB知识库发布了,抢先关注,请戳这里=>>http://lib.csdn.net/base/mongodb



唐建法

CSDN知识库:能否分享一下你的技术成长之路。

唐建法:多年Java开发经验,热衷于开源,从开源软件的受惠者到开源软件的提供者到现在的布道者,开源软件伴随了技术领域的发展之路。

CSDN知识库:Mongodb与传统的关系型数据库有什么区别?最大优势是什么?

唐建法:相比于RDBMS的关系数据模型,MongoDB采用JSON作为其数据模型,非常接近于程序员熟悉的对象模型。MongoDB可以让开发者省掉繁琐的数据库设计过程,显著缩短产品开发周期。对数据库的操作不再需要一个专门的语言,而是通过API调用的方式,为开发者喜闻乐见。

MongoDB从一开始就是一个分布式数据库。其成熟的分片技术允许用户非常容易的扩展到数十亿的数据量并可以支持亿万级的用户。相对来说,RDBMS的扩展性非常受限,即使是有一些分库分表技术也是需要繁琐的运维手段和应用程序支持,并且性能往往不能得到保证。

CSDN知识库:Mongodb是否可以进行复杂的查询操作,在性能上有哪些突出的表现?

唐建法:MongoDB是在功能上最接近传统RDBMS的一个NoSQL数据库。支持绝大部分的复杂查询操作,如使用二级索引进行多个字段匹配,数组内查询,聚合分析,甚至支持强大的MapReduce。在性能上,MongoDB由于使用异步落盘,在并发写入和查询上有非常优越的表现。测试表明在一台20core的服务器上MongoDB可以达到27万的混合读写操作,并且95 percentile的操作都在10毫秒之内返回。

CSDN知识库:Mongodb的分片策略有哪些,不同的分片策略会产生怎样的影响?

唐建法:MongoDB分片策略有3种: 哈希,范围和标签。哈希对数据分布支持较好,适合写入压力大,读压力小的场景。范围分片比较适合range query,一次性查询一个连续区段数据的场景。而标签则在理解数据分布的基础上,自己来定制数据的分布规则。MongoDB的片键一旦设定不能修改。修改片键则需要把数据全量导出再导入到新的集群内。

[b]CSDN知识库:Mongodb是如何存储文件(图片,视频和音频),如何提高读写文件的性能?[/b]

唐建法:对于小型二进制文件(如头像或者几个MB的PDF之类),可以直接按二进制字段存入JSON(BSON)文档内。MongoDB另外提供GridFS API,可以用来管理较大的二进制文件。GridFS API会自动对大文件进行切块存储,并在读回时自动封装为源文件,减少程序的代码量。如果需要快速的文件读写性能,MongoDB一般建议:

  • 为数据盘和Journal日志盘使用单独的物理卷
  • 有可能的情况下使用SSD
  • 使用本机直挂的存储(DAS)
  • 使用RAID来提高存储系统的IOPS

CSDN知识库:Mongodb是如何做到应对高并发高可用和数据负载均衡的呢?

唐建法:MongoDB使用分片集群来应对高并发,使用复制集技术来提供高可用,并提供路由节点mongos来对数据和请求进行负载均衡。在MongoDB架构里面没有单点故障的存在。所有的数据节点或者配置节点均为3节点以上高可用部署。MongoDB的复制技术支持各种拓扑,甚至多中心的容灾部署也可以简单搭建。路由节点为无状态节点,可以根据系统压力随时增加或者减少路由节点的数量(一般至少要2个)。

CSDN知识库:可以分享一两个国内在使用Mongodb的公司企业吗?他们的使用场景及访问量数量级?

唐建法:在百度云项目, MongoDB用来存储文件的元数据信息(文件名,大小,访问时间,路径等等)。百度云项目有3亿多用户,MongoDB文档条目数量超过2000亿,数据总量超过2PB。百度有100多个MongoDB项目,运行在上千个节点的MongoDB集群上。

东方航空正在他们最关键的新一代机票搜索项目中使用MongoDB。根据东航的公开分享,他们MongoDB数据库总条数有数十亿,每天写入2600万次,查询4500万次,80%的查询低于50ms,CPU利用率小于30%,这些仅仅只是由一套3节点的复制集来提供。

CSDN知识库:Mongodb未来的趋势是怎样的,目前还面临着那些挑战?

唐建法: MongoDB官方最近增大了对中国市场的投入。在国际上,顶级的跨国金融机构如花旗,巴克莱,高盛,CapitalOne等都在纷纷大规模采用MongoDB作为他们新一代数据库平台的标准。他们共同的目的就是降低IT成本的同时,提高团队的开发效率,缩短产品从概念到市场的时间,快速展现业务价值,通过改善客户的体验来提高竞争力。

目前面临的主要挑战就是国内对MongoDB的认知程度不够,以至于大部分时候都是使用在非关键型应用场景。

CSDN知识库:关于技术学习您有什么心得?我们上线了知识库系统化学习的方法,您会怎样用?

唐建法:如果想使用好MongoDB,首要的关键是要抛弃固有的关系型数据库的思维模式。忘掉关系型,从业务的角度出发来考虑对数据库能力的需求。在知识库方面,希望能够多提供些结合MongoDB做应用开发的文章和经验,相比于分享运维知识可能更加有学习价值。
  • 大小: 13.2 KB
2
8
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • centos7配置DNS服务器

    DNSserver搭建

  • bind cname

    $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh ...

  • TTL值 MX记录 CNAME (Canonical Name)记录 URL (Uniform Resource Locator )转发

    TTL值全称是“生存时间(Time To Live)”,   简单的说它表示DNS记录在DNS服务器上缓存时间。    要理解TTL值,请先看下面的一个例子:   假 设,有这样一个域名myhost.cnMonkey.com(其实,这就是一条DNS记录,通常表示在abc.com域中有一台名为myhost的主机) 对应IP地 址为1.1.1.1,它的TTL为10分钟...

  • dnsmasq和bind9添加域名记录说明

    bind9/dnsmasq添加A、AAAA、CNAME、SRV、TXT、PTR、NAPTR记录说明

  • BIND ZONE文件的$ORIGIN

    最初我还疑惑test.xxx.com.会不会被bind认为是test.xxx.com.xxx.com.这种记录,后来测试发现的确可以解析test.xxx.com. 仔细翻阅了下bind官网的手册才发现$ORIGIN配置的域部分只会附加到非FQDN的域名记录上,而对于test.xxx.com.这种FQDN格式的域名是不会附加的。这个里面还说了,ZONE文件被读取的时候,还有个隐式$ORIGIN xxx.com.声明,有时间测试一下呢,不过说实话,为了配置文件清晰明了,别这么玩。

  • DNS扫盲系列之五:域名配置ZONE文件

    这次把ZONE文件拿出来简单说明一下。ZONE文件是DNS上保存域名配置的文件,对BIND来说 一个域名对应一个ZONE文件,现以abc.com的ZONE文件为 例展开。罗嗦一句,该ZONE存在于权威DNS上。   $TTL 6h //第1行 $ORIGIN abc.com. //第2行 @ 3600 IN SOA ns1.ddd.com. root.ddd.com.(

  • BIND-$ORIGIN 指令

    BIND-$ORIGIN 指令 $ORIGIN defines a base value from which 'unqualified' name (those without a terminating dot) substitutions are made when processing the zone file. Zone files which do ...

  • DNS的部署(BIND)的经验之谈 (有常见报错总结)

    这里不介绍DNS的基础知识,只关于DNS部署相关的内容 首先理解两个概念: 递归请求和迭代请求 所谓递归请求:即为DNS服务器要去DNS的根服务器一层一层的请求下来(相当消耗资源) 所谓迭代请求:DNS服务器从自己负责的区域这一层或往下就能找到(不需要去DNS根服务器找) 本机主DNS服务器:192.168.150.129 从DNS服务器:192.168.150.130 子域DNS服务器:192.168.150.131 BIND的基础安装 (1)yum安装BIND安装包 yum.

  • DNS A CNAME MX PTR 等记录有什么区别

    原文发表于: DNS A CNAME MX PTR 等记录有什么区别 在之前的文章中,我们了解了什么是 DNS以及DNS 系统是如何工作的,现在让我们来看看 DNS 记录有哪些种类,以及它们有什么作用。 要理解不同的 DNS 记录,首先必须了解区域文件是什么? 区域文件 区域文件是名称服务器存储其所知道的域名的信息的方式。名称服务器知道的每个域名都存储在区域文件中。对于名称

  • DNS

    DNS(Domain Name System),域名解析系统,能够将名称与对应的IP进行相互解析的分布式数据库,是互联网架构模型中的一个基础服务。当用户在浏览器中输入一个网站的域名之后(如www.google.com),操作系统会将该请求发送给DNS服务器,DNS服务器将该域名对应的IP响应给用户,用户根据这个IP去访问相对应的网站以实现上网功能。具体过程请参考:浅谈一次URL请求过程一、域名用户在

  • 域名解析的记录类型:A记录、CNAME、MX记录、NS记录、TTL的含义

    转自:http://haitao.iteye.com/blog/1428018 域名解析的记录类型:A记录、CNAME、MX记录、NS记录、TTL  1、A记录:   又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器。    说明:   ·指向的目标主机地址类型只能使用IP地址;    1) 添加A记录   

  • bind

    acl:定义IP地址表的名字,用于访问控制等 语法: acl acl-name { address_match_list; } controls:宣告一个用于rndc工具控制通道 语法: controls { [ inet ( ip_addr | * ) [ ...

  • A记录与CNAME

    A记录:A记录用来指定域名对应的IP地址。CNAME:将多个域名映射到同一台计算机上。举例:将一个域名作为A记录绑定服务器IP,同时设置几个不同的CNAME指向A记录,这样当服务器IP更改时,只需要更改A记录绑定的IP地址即可。...

  • A记录,CNAME,MX记录,TTL

    A记录 A记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。 MX记录 MX记录邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP地址,即可将您域名下的邮件全部转到您自己设定...

  • 域名相关概念解释~~

    源地址: 建站名词解释:DNS A记录 NS记录 MX记录 CNAME记录 TXT记录 TTL值 PTR值 泛...建站名词解释:DNS A记录 NS记录 MX记录 CNAME记录 TXT记录 TTL值 PTR值 泛域名 泛解析 域名绑定 域名转向1. DNSDNS:Domain

  • linux bind 配置详解

    1、安装 本文选择rpm方式安装,以下为所需软件列表 bind-9 bind-utils bind-chroot Bind,提供域名服务的主要程序及相关文件 Bind-utils,提供对dns服务器的测试工具程序(如nslookup、dig等) Bind-chroot,为bind提供一个伪装的根目录以增强安全性 Named服务的主配置文件为named....

  • BIND与DNS

    文章目录`DNS`的运行机制附加域名@符号的意义 DNS的运行机制 我们可以通过这张图来理解一下域和区域的差别 可以看到,ca域除了包含自己的数据(ca区域中的数据),还包含了ab.ca、on.ca、qc.ca区域中的所有数据 对于没有授权出去的子域,他们仍然是属于ca区域所有的,而已经授权出去的子域则被划出了界限,ca区域将不会再包含已经授权出去的数据,取而代之的是指向子域的指针,这些指针指向...

  • linux 服务器端bind(4)

    1. 前言     上一篇博客主要记录了socket创建的流程,详见点击打开链接,本篇博客主要记录linux服务器端套接字创建成功后,需通过bind绑定一个本地地址和端口的工作流程。 百科注解:      将一本地地址与一套接口捆绑。本函数适用于未连接的数据报或流类套接口,在connect()或listen()调用前使用。当用socket()创建套接口后,它便存在于一个名字空间(地址族)中,...

Global site tag (gtag.js) - Google Analytics