全面观察市面上所有关于Dubbo内容的书籍,系统的讲解Dubbo实战应用的很少,大部分都是介绍Dubbo的内部原理和源代码的分析,这样的书籍内容很明显就把具有5年以下开发经验的那些想进一步扩展实战技术的潜在型学习者拒之门外。他们如果想学习ZooKeeper+Dubbo 3,只有在互联网上以零散找寻资料的方式进行学习,这样的学习效率或者说学习方式是容易出现问题的,为了解决这类学习者的困扰,笔者通过自身实际的开发经验及对技术的理解整理出此书,如果您有缘看到此书,也是对我努力的一种回馈,希望它能帮到您。
本书在写作过程中本着“案例为王”的态度来整理文稿,每个技术案例都是一个完整的DEMO,不会出现把一个DEMO分解成若干片段,再把这些片段分布到不同的章节而影响读者的阅读体验,读者只需要把学习精力聚焦到当前的章节,因为一个章节解决一个技术问题。
本书各章节技术点讲解安排如下。
(1)第1章:主要讲解ZooKeeper的相关原理,比如数据模型,Watch观察者机制,ZooKeeper服务的角色,选举的必要性,ZAB协议的特性,选举的算法,ZooKeeper架构,节点类型,常用API的使用等必备技术点。
(2)第2章:主要讲解搭建ZooKeeper单机运行环境,比如配置选项tickTime、dataDir、clientPort的解释,启动/连接/停止/查看ZooKeeper服务,创建节点和查看子节点,获得节点value,删除节点等常用节点操作。
(3)第3章:主要讲解搭建ZooKeeper主从运行环境,包含zoo cfg配置文件核心参数的介绍,实现主从复制,获得实例角色等。
(4)第4章:使用大量篇幅讲解ZooKeeper的常用命令,命令覆盖率达到90%,并且几乎所有涉及的命令参数都进行了案例式的介绍。Command命令是ZooKeeper的核心技术,所以笔者为此章花费了很多精力,目的就是让读者全面掌握ZooKeeper,从而打下一个坚实的技术基础,读者一定要重视此章的技术学习。
(5)第5章:主要讲解软件技术架构的发展,因为在学习Dubbo技术之前,一定要了解这些技术历史脉络,理解旧技术为什么被淘汰,而新技术为什么被推崇的原因,只有认识到这些优劣势,才能更好地学习和应用Dubbo。
(6)第6章:主要介绍Dubbo框架周边的技术常识,比如Dubbo是什么,有哪些关键特性,Dubbo发展历程,什么是RPC及其内部的原理,Dubbo中的五大核心组件,服务注册和服务发现的作用,这些知识点都是面试时被问到的高频技术问题,理解的深浅决定了对Dubbo认识的高低。
(7)第7章:主要介绍Dubbo的实战技术,包含直连提供者、隐式参数、服务分组、多版本、启动时检查、令牌验证、超时和线程池大小、Nacos注册中心等高频使用点,这些内容都是真实软件项目中被高频使用的,对于能否使用Dubbo熟练地开发基于RPC的分布式软件项目,本章起到决定性的作用。
(8)第8章:主要介绍Dubbo的高级技术,围绕Dubbo的高可用架构来展开,包含服务提供者集群、集群容错、负载均衡等实用技能。
本书以笔者的角度尽全力列举出更多的实用案例,但由于自身技术水平有限,难免有错误和不是之处,还请各位读者一一指正,共同进步。
在书稿的编写过程中,本着“严谨,不乐观,试错,手勤”的学习技术的态度,写作不易,在此也非常感谢北京大学出版社魏雪萍主任的支持和信任,以及所有的编辑,感谢你们对此书付出的努力和帮助。另外也感谢我的父母、爱人,还有3岁多可爱的儿子,是你们承担了本该我承担的家庭责任,让我有更多的精力和时间奔赴在技术的道路上,感谢你们。
编者
2022年7月