我一直想写一本关于分布式系统的书。一方面想把个人工作中涉及的分布式技术做一下总结,另一方面想把个人多年的经验分享给广大的读者朋友。由于我的开发工作大都以Java为主,所以一开始设想的主题是“分布式 Java”,书也以开源方式发布在互联网上(网址为https://github.com/waylau/distributed-java)。
后来,陈晓猛编辑看到了这本开源书,以及我关于分布式系统方面的博文,问我是否有兴趣出版分布式相关题材的图书。当然,书的内容不仅仅是“分布式Java”。
对于出书一事,我犹豫良久。首先,本身工作挺忙,实在无暇顾及其他;其次,虽然我之前写过超过一打的书籍(https://waylau.com/books/),但多是开源电子书,时间、内容方面自然不会有太多约束,几乎是“想写就写,没有时间就不写”,这个跟正式出版还是存在比较大的差异的;最后,这本书涉及面相对较广,需要查阅大量资料,实在是太耗费精力。
但陈晓猛编辑还是鼓励我去做这个事情。思索再三,最终我答应了。当然,最后这本书还是在规定时间内完成了。它几乎耗尽了我写作期间所有的业余和休息时间。
“不积跬步,无以至千里;不积小流,无以成江海。”虽然整本书从构思到编写完成的时间不足一年,但书中的大部分知识点,都是我在多年的学习、工作中积累下来的。之所以能够实现快速写作,一方面是做了比较严格的时间管理,另一方面得益于我多年坚持写博客和开源书的习惯。
本书为两部分,即分布式系统基础理论和分布式系统常用技术。第一部分为第1章和第2章,主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点及可能会面临的问题。第二部分为第3章到第8章,主要列举了在分布式系统应用中的一些主流技术,并介绍这些技术的作用和用法。
第1章 介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点及可能会面临的问题,包括线程、通信、一致性、容错性、CAP理论、安全性和并发等相关内容。
第2章 详细介绍分布式系统的架构体系,包括传统的基于对象的体系结构、SOA。
第3章 介绍常用的分布式消息服务框架,包括Apache ActiveMQ、Apache RabbitMQ、Apache RocketMQ、Apache Kafka等。
第4章 介绍分布式计算理论和应用框架方面的内容,包括MapReduce、Apache Hadoop、Apache Spark、Apache Mesos 等。
第5章 介绍分布式存储理论和应用框架方面的内容,包括Bigtable、Apache HBase、Apache Cassandra、Memcached、Redis、MongoDB等。
第6章 介绍分布式监控方面常用的技术,包括Nagios、Zabbix、Consul、ZooKeeper等。
第7章 介绍常用的分布式版本控制工具,包括Bazaar、Mercurial、Git等。
第8章 介绍RESTful API、微服务及容器相关的技术,着重介绍Jersey、Spring Boot、Docker等技术的应用。
本书提供源代码下载,下载地址为https://github.com/waylau/distributed-systems-technologiesand-cases-analysis。
本书如有勘误,会在 https://github.com/waylau/distributed-systems-technologies-and-casesanalysis上发布。由于笔者能力有限,时间仓促,书中难免有错漏,欢迎读者批评指正。读者也可以到博文视点官网的本书页面进行交流(www.broadview.com.cn/00000)。
您也可以直接联系我:
博客:https://waylau.com
邮箱:waylau521@gmail.com
微博:http://weibo.com/waylau521
GitHub:https://github.com/waylau