架构师(12月刊)

InfoQ中文站的电子杂志《架构师》(2012年12月刊)出炉了。本期的主编是InfoQ中文站主编张逸。12月份《架构师》杂志的主题是" NoSQL,走向成熟",编者认为NoSQL在褪去浮华之后已经逐渐迈向了成熟。我们还可以预见在很长一段时间内会存在关系数据库与NoSQL并存的状态,甚至在同一个系统中出现。

 NoSQL,走向成熟

在玛雅预言中的末世之年,整个 IT 业界却似乎可以用“波澜不惊”四个字来概括。没有惊天动地的大新闻来攫取眼球,对于媒体人而言,或许是一种不幸;但对于程序员,却可以减少太多技术选择带来的茫然。没有你方唱罢我登场的喧嚣,没有概念经济的浮夸与炒作,许多技术于是从绚烂归于平淡。

技术由绚烂归于平淡,并不意味着它将落伍于时代,退出历史舞台,而是大浪淘沙炼出真金,乃返璞归真的升华。业界颇有几种技术正是沿着这样的发展脉络不屈地前进,例如本期《架构师》专题讨论的技术 NoSQL。

编者认为,NoSQL 在褪去浮华之后,已经逐渐迈向了成熟。一个标志是用户群的增加。虽然,Martin Fowler 在去年接受 InfoQ 的采访时,认为:“关系数据库仍然是大多数情况下的选择,至少未来几年是这样的。毕竟,关系数据库产品很成熟,有丰富的支持工具,而且相对来说人们对它们已经有很好地理解了。”但他同样对采用 NoSQL 技术的项目表示信心满满。

可以看到,许多 NoSQL 技术已经在互联网应用以及大数据处理方面露出峥嵘,即使是在企业应用领域,它们也逐渐崭露头角。以文档数据库为例,作为个中翘楚的 MongoDB,就被 SoureForge、MTV 等互联网站广泛使用。而作为全球排名第一的 ERP 软件开放商 SAP,也将 MongoDB 作为其 PaaS 平台的核心组件,用以支持企业内容管理(Enterprise Content Management)。Neo4j 作为图形数据库的领跑者,目前已有许多财富 500 强的企业如 Adobe,Cisco 成为了 Neo4j 的客户。

提及 NoSQL 技术,就不能不提到它与关系型数据库之间的关系,尤其是我们在实际运用中,会面临一个棘手的问题,那就是如何实现关系数据库到 NoSQL 的平滑迁移。很显然,只要支持这一特性,就能更好地将 NoSQL 运用到遗留系统的技术栈迁移场景,拓宽 NoSQL 技术的应用范围。MongoDB 很好地做到了这一点,例如Server Density就选择了从 MySQL 迁移到 MongoDB。

不仅是 MongoDB 支持这种迁移,Couchbase 支持的特性也不让 MongoDB 专美于前。本期《架构师》的专题文章《从关系数据库向 NoSQL 迁移:采访 Couchbase 的产品管理主管 Dipti Borkar》介绍了使用 Couchbase 进行这种迁移的时机、步骤、困难以及选择 NoSQL 的优点。

NoSQL 产品之间的良性竞争也可以从另一个侧面证明 NoSQL 技术的成熟。例如 CouchDB 与 MongoDB 之间的竞争。事实上,CouchDB 这种使用 JSON 作为文档,运用 JavaScript 完成 MapReduce 查询的方式,以及侧重于 Availability(可用性)与 Partition-Tolerance(分区容忍度)的表现(相对而言,MongoDB 更侧重于一致性与分区容忍度),使得它迅速成为了诸多互联网站的新宠。本期专题文章《CouchDB 是什么?为什么我们要关注它?》非常详细地介绍了 CouchDB。

或许,我们还可以从各种 NoSQL 产品的版本来判断 NoSQL 的成熟度,例如 MongoDB 的版本已经发展到 2.2.2,Neo4j 的版本发展到了 1.9。不过,这种判断未免有些草率。判断成熟度的另一个佐证则是该技术是否产生了大量相关的衍伸产品。Martin Fowler 在展望 NoSQL 数据库市场的发展趋势时,就认为“现在的一切都是在添加工具和成熟度,使这些数据库更容易很好地使用。”对于 NoSQL 技术,我们确实看到了这种趋势,如 Apache GORA 与 Spring Data 的出现。Spring Data 提供了访问数据库的统一 API,因为它既能支持关系型数据库,又能支持 REST、大数据以及主流的 NoSQL 数据库,如 MongoDB、Neo4j 等。Apache GORA 则是 NoSQL 数据库的 ORM 框架,提供了各种 NoSQL 数据存储之上的统一前端。专题文章《Julien Nioche 谈 Apache Nutch 2 的特性及产品路线图》在介绍 Web 搜索框架 Nutch 时,谈到了它与 NoSQL 以及 ORM 框架 GORA 之间的关系。

此外,还有许多创新的 NoSQL 产品的出现,让人眼睛一亮。例如提供不可变数据库服务器的Datomic,具备事务管理和部署的特性,并能在云中将数据库作为服务提供给用户。还有VoltDB,它尝试在提供可伸缩性的同时使用 SQL 范型。或许它们不能完全划归到 NoSQL 类别中,而应该称之为 NewSQL,甚至是 MoreSQL。451 Group的高级分析师 Matthew Aslett 就将 NoSQL 定义为“旨在满足分布式体系结构的可扩展性需求和 / 或无模式数据管理需求”,NewSQL 则被定义为“旨在满足分布式体系结构的需求,或提高性能以便不必再进行横向扩展”。Alexander Tatiyants 撰写的文章《NoSQL No More: Let’s double down with MoreSQL》,则掀起了 MoreSQL 的热潮。个人认为,这些技术事实上还是 NoSQL 技术的一种发展。

我们还可以预见,在很长一段时间内,会存在关系数据库与 NoSQL 并存的状态,甚至在同一个系统中出现,这正是 Martin Fowler 所谓的Polyglot Persistence。这显然是由这两种不同类型的数据库,甚至是不同类别的 NoSQL 数据库各自适应的场景不同导致的必然结果。无论如何,种种迹象证明,NoSQL 技术已经走向成熟,是到了该收获果实的季节了。

本期主编:张逸

免费下载阅读

欢迎您 [DOWNLOAD] ,并为我们提出宝贵的建议。本迷你书大小为:5.42M,您需要完整下载,方可正常阅读。

本书目录

 卷首语

人物专访

  • 阿里云大赛 20 万大奖获得者江林锦:ECSMate 开发心得

热点新闻

  • Dropbox 可伸缩性设计最佳实践分享
  • 电商网站的宕机案例分析
  • Facebook 如何提高软件质量?
  • 为 Web 应用程序提速的 50 条秘技
  • Matz:如何成为语言的设计者 matz

特别专题

  • 从关系数据库向 NoSQL 迁移
  • CouchDB 是什么?为什么我们要关注它?
  • Julien Nioche 谈 Apache Nutch 2 的特性及产品路线图

推荐文章

  • 注重实效的架构师——大胆行前人未行之路
  • 聊聊并发(四)——深入分析 ConcurrentHashMap
  • Calatrava:自由构建 UI 的跨平台移动框架
  • QA 部门将会消亡
  • 消灭神出鬼没的 Heisenbug
  • arrayDB,全新而且简单的 PHP ORM 库

新品推荐

  • RabbitMQ 3.0 版本有所简化,改进了对 STOMP 和 MQTT 的支持
  • Moscrif:用 JavaScript 进行跨平台移动开发
  • Pex:来自微软研究院的单元测试工具
  • ASP.NET 的新特性
  • ModelMapper: 从对象到对象的映射库
  • Google 发布支持 Java 7 的 App Engine 预览版
  • 使用 C++/CX 开发 Windows Store 应用程序的注意事项
  • 用 Visual Studio 2012 Power Tools 来提高生产力
  • 微软开源 Reactive Extensions
  • JustDecompile 已支持 C#5 和 WinRT
  • Visual Studio 如何提高 C++ 性能

 封面植物

  • 鹅耳枥

封面植物

相关内容

架构师(2012 年 11 月刊)

架构师(2012 年 10 月刊)

架构师(2012 年 9 月刊)

架构师(2012 年 8 月刊)

架构师(2012 年 7 月刊)

架构师(2012 年 6 月刊)

架构师(2012 年 5 月刊)

架构师(2012 年 4 月刊)

架构师(2012 年 3 月刊)

架构师(2012 年 2 月刊)

架构师(2012 年 1 月刊)

架构师(2011 年 12 月刊)


《架构师》月刊由 InfoQ 中文站制作出品。

读者反馈 / 投稿:editors [at] cn.infoq.com

商务合作:sales [at] cn.infoq.com,联系电话:15810407783

重要提示:如果您无法成功下载,请先在网站左上角登录,然后再次刷新本页面,重新下载即可。有任何问题请直接拨打 010-64738142 咨询,感谢支持。