新书速递
近期,MongoDB中文社区核心成员之一唐卓章老师出了一本MongoDB最新书籍——《MongoDB进阶与实战:微服务整合、性能优化、架构管理》,全面涵盖了MongoDB的基本原理和使用方法、深度的性能分析和应用调优等最佳实践方案,以及基于MongoDB搭建微服务项目的完整上手指导。
本书汇聚了作者在MongoDB微服务开发、性能调优、合理架构部署等方面的丰富经验。书中描述了理想的使用案例,除了给出贴合实际应用的技巧,还涵盖了其中的技术原理,可帮助开发者在MongoDB应用开发方面快速上一个台阶。
想要一睹为快的朋友可以在常用电商平台上购买到相关书籍,您也可以关注社区微信公众号,按照相关活动免费获得此书。当然了,今年技术大会现场,我们也会给大家带去这本最新书籍,如果你是那个幸运儿,就可以把书抱回家!
为什么是MongoDB
MongoDB是当今业界使用最广泛的文档数据库之一,其从2009年诞生以来,已经吸引了无数开发者的目光。曾经MongoDB被冠以“四不像”的称号,被大家称为“非关系型数据库中最像关系型数据库的软件”。即便如此,MongoDB在其发展历程中仍表现出强大的生命力。尤其在近几年,随着云计算、大数据的飞速发展,企业项目对分布式数据库的需求越来越多,MongoDB作为一款灵活易用、高可用、高可扩展的分布式数据库,在许多互联网产品及企业项目中大施拳脚。
笔者从2016年开始真正接触MongoDB数据库,而在此之前曾有过很长一段时间的关系型数据库使用经验。从自身的感受来说,采用传统的关系型数据库可能是一种“万金油”的方案,选择MongoDB则很大程度取决于团队对NoSQL的接受程度,或是来自敏捷开发、高效扩展方面的权衡。
MongoDB的名字来自英文单词“Humongous”,中文含义是“庞大”“巨大”,命名者的意图是可以处理大规模的数据。但笔者所在的团队更喜欢称呼它为“芒果”数据库,除了译音更加相近,还有这几年使用MongoDB的两层感受。
第一层感受是“爽”。相比关系型数据库,MongoDB几乎没有太多的约束。一方面,MongoDB的文档模型是基于JSON的,开发者更容易理解。另一方面,动态化模式的特性让数据库的管理工作变得更加简单,例如一些线上的变更可以更快速地完成。
第二层感受是“酸爽”。这一点对于MongoDB数据管理员来说可能更有感触一些。MongoDB由于入门体验“太过于友好”,导致初学者很容易产生一种误解,即MongoDB不需要在管理方面投入太多的精力,最终导致系统上线后不断被发现一些技术债务。更戏谑的说法是,“交付一时爽,维护火葬场”。当然,这么说可能并不恰当,但笔者想表达的观点是,与传统的关系型数据库一样,MongoDB在使用上仍然需要认真地考量和看护,只有如此才可能最大限度地发挥出MongoDB的优势。
本书写作思路
名为《MongoDB进阶与实战:微服务整合、性能优化、架构管理》,意味着书中除了介绍MongoDB技术,还会介绍与微服务相关的技术范例。在当今的背景下,风靡业界的微服务架构已成为分布式系统的事实标准。因此,我们在谈MongoDB应用开发时,必然免不了和微服务技术栈产生一些联系。以开发者的角度来看,在成为一名MongoDB高手之前,掌握全栈式的知识技能仍然是必需的,这些技能可概括为以下3个方面。
MongoDB数据库技术的掌握:包括基本的文档模型概念和数据操作,以及集群高可用、数据分片方面的知识。
MongoDB整合微服务的技能:需要对微服务周边的技术框架有一定的掌握。本书以当前最流行的 Java 微服务技术栈为背景,介绍了从MongoDB Java Driver、Spring Data Mongo(ODM层)到上层应用整合的各种实战范例。
MongoDB高阶技巧的掌握:包括MongoDB系统性能调优及MongoDB 架构高可用、安全性、高效运维管理方面的一些知识和经验。
由此可见,初学者在从MongoDB入门到进阶的过程中,需要学习及掌握的知识并不算少。尤其是高阶技巧方面,这部分是最难也是最花费时间成本的。而笔者一贯认同的是,好记性不如烂笔头,在学习MongoDB的历程中,笔者将MongoDB在项目中的实战经验进行了总结,并多次以文章的形式发表。在和一些读者交流之后,笔者发现大家实际上都遇到了不少应用层面的开发问题。
尽管MongoDB的官方文档已经做得非常详细(大多数基本的数据库问题都可以从官方文档中找到答案),然而其在周边技术栈的整合、系统管理及调优方面仍缺乏一些富有针对性的内容。因此笔者认为在结合一些实践案例的前提下,再以开发管理者的角度对MongoDB技术进行系统地梳理,则可能会产生事半功倍的效果,遂迸发了编写本书的想法。
本书内容概要
第1部分:MongoDB入门(第1~6章)
该部分介绍MongoDB的基本概念及入门知识。
通过该部分的学习,读者可对MongoDB自身的技术全貌形成一定的认识。
第2部分:MongoDB微服务开发(第7~10章)
该部分介绍微服务的基本概念及微服务架构中应用MongoDB的相关技术实现。
通过该部分的学习,读者将能深入了解基于Java 微服务技术栈开发 MongoDB 应用的实践方法。
第3部分:MongoDB高级进阶(第11~15章)
该部分介绍MongoDB更加高级的一些使用技巧。
通过该部分的学习,读者可掌握MongoDB在性能调优方面的一些最佳实践及指导方案。
第4部分:MongoDB架构管理(第16~18章)
该部分介绍MongoDB在架构管理方面的一些经验。
通过该部分的学习,读者可获得MongoDB在架构可靠性、安全方面的指导及如何在项目中进行数据库问题防治的一些思路。
特别说明
本书的重点是讨论MongoDB开发进阶方面的内容,但书中会介绍MongoDB整合Java微服务所必备的一些关键技能(如Java驱动、Spring框架整合等)。微服务本身是一个非常大的课题,由于篇幅和笔者水平有限,这里对容器化、分布式框架方面的细节不会做过多介绍,而实际上这也超出了本书的范围。如果读者感兴趣,建议参阅其他书籍。
作者致谢
决定写一本书,不仅是分享知识,还是践行长期主义的一次历程。不得不说,这个过程的确是痛并快乐着。由于平日里工作非常繁忙,笔者无数次不得不坚持在深夜里赶稿子,由此也牺牲了很多陪伴家人和孩子的宝贵时间。在此特别感谢我的家人,如果没有你们的大力支持,本书不会如此顺利地完成。另外还要感谢笔者的项目团队,让笔者有机会在工作过程中学习到大量的MongoDB的知识。
本书提供了大量的案例说明,旨在分享MongoDB在应用开发、系统调优及管理中的一些实战经验。由于笔者个人能力有限,书中难免存在错漏之处,恳请读者提出问题并帮忙指正,再次感谢!