# 目录

* [网络](#网络)
  * [1 TCP/IP卷一](#1-tcpip卷一)
  * [2 计算机网络：自顶向下](#2-计算机网络：自顶向下)
  * [3 图解HTTP和图解TCP/IP](#3-图解http和图解tcpip)
  * [4 计算机网络](#4-计算机网络)
* [操作系统](#操作系统)
  * [1 深入理解计算机系统](#1-深入理解计算机系统)
  * [2 现代操作系统](#2-现代操作系统)
  * [3 Linux内核设计与实现](#3-linux内核设计与实现)
  * [4 Unix网络编程](#4-unix网络编程)
* [数据结构与算法](#数据结构与算法)
  * [1 算法导论](#1-算法导论)
  * [2 数据结构与算法（Java版）](#2-数据结构与算法（java版）)
  * [3 算法图解，啊哈算法](#3-算法图解，啊哈算法)
  * [4 剑指offer](#4-剑指offer)
  * [5 LeetCode](#5-leetcode)
* [Java基础](#java基础)
* [1 Java编程思想](#1-java编程思想)
* [2 Java核心技术卷一](#2-java核心技术卷一)
* [Java进阶](#java进阶)
  * [1 深入理解JVM虚拟机](#1-深入理解jvm虚拟机)
  * [2 Java并发编程实战](#2-java并发编程实战)
  * [3 Java并发编程艺术](#3-java并发编程艺术)
  * [4 Effective Java](#4-effective-java)
  * [5 Java性能调优指南](#5-java性能调优指南)
  * [6 Netty权威指南](#6-netty权威指南)
* [JavaWeb](#javaweb)
  * [1 深入JavaWeb技术内幕](#1-深入javaweb技术内幕)
  * [2 How Tomcat Works](#2-how-tomcat-works)
  * [3 Tomcat架构解析](#3-tomcat架构解析)
  * [4 Spring实战](#4-spring实战)
  * [5 Spring源码深度解析](#5-spring源码深度解析)
  * [6 Spring MVC学习指南](#6-spring-mvc学习指南)
  * [6 Maven实战](#6-maven实战)
* [数据库](#数据库)
  * [1 数据库原理](#1-数据库原理)
  * [1 sql必知必会](#1-sql必知必会)
  * [2 深入浅出MySQL](#2-深入浅出mysql)
  * [3 MySQL技术内幕：innodb存储引擎](#3-mysql技术内幕：innodb存储引擎)
  * [4 高性能Mysql](#4-高性能mysql)
  * [5 Redis实战](#5-redis实战)
  * [6 Redis设计与实现](#6-redis设计与实现)
* [分布式](#分布式)
  * [1 分布式Java应用](#1-分布式java应用)
  * [2 大型网站技术架构](#2-大型网站技术架构)
  * [3 大型分布式网站架构设计与实践](#3-大型分布式网站架构设计与实践)
  * [4 分布式服务框架原理与实践](#4-分布式服务框架原理与实践)
  * [5 大型网站系统与Java中间件开发实践](#5-大型网站系统与java中间件开发实践)
  * [6 从Paxos到Zookeeper分布式一致性原理与实践](#6-从paxos到zookeeper分布式一致性原理与实践)
  * [7 大规模分布式存储系统](#7-大规模分布式存储系统)
* [云计算](#云计算)
  * [1 OpenStack设计与实现](#1-openstack设计与实现)
  * [2 docker入门与实践](#2-docker入门与实践)
  * [3 kubenetes权威指南](#3-kubenetes权威指南)
* [大数据](#大数据)
  * [1 大数据技术原理与应用](#1-大数据技术原理与应用)
  * [2 Hadoop实战](#2-hadoop实战)
  * [3 Hadoop权威指南](#3-hadoop权威指南)
* [其他：](#其他：)
  * [1 Git权威指南](#1-git权威指南)
  * [2 重构](#2-重构)
  * [3 - n](#3---n)
* [微信公众号](#微信公众号)
  * [个人公众号：黄小斜](#个人公众号：黄小斜)
  * [技术公众号：Java技术江湖](#技术公众号：java技术江湖)


Java开发工程师一般负责后端开发，当然也有专门做Java Web的工程师，但是随着前后端的分离，越来越多的Java工程师需要往大后端方向发展。

今天我们就来介绍一下Java后端开发者的书单。

首先要感谢一下江南白衣大大的后端书架，让我在初学阶段读到了很多好书，直到现在都印象深刻。

我在两年的学习历程中看了很多的书，其中不乏XXX入门到精通，XXX王者归来，XXX指南什么的。

虽然这类书确实毛病很多，但是作为非科班的我来说，当时还是看的津津有味。直到后来我看到一些优秀的书籍，以及白衣哥的书架，我才逐渐认识到看一些精品书籍的好处。

所以我们今天就从这些精品书籍中挑选一些优秀书籍来推荐给大家，当然其中有一些书我自己也没有时间看完。

接下来我们按照后端技术栈各个部分的内容来推荐书籍。

# 网络

  

## 1 TCP/IP卷一

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsqoHcGCTTk8lwnicOzjrYsEPS0m4z5TptXoUlzlFfu7hsLfWk9gBz5hA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)

这本其实我刚开始没看太懂，可能是当时太水的原因，但是一般是大牛力荐的书。

## 2 计算机网络：自顶向下

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsCYHvAMX255u3jPtfmknRsYt7JRS48VvzZSIiarQTNM96pv942AbmgIA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)

  

这本从应用层讲到物理层，感觉这种方式学起来更轻松，我比较推荐小白看这本。

## 3 图解HTTP和图解TCP/IP

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsLee9tvMJ90MGvsY1xTf696Nzs5reVs7he5Zxm6vs9Mia7tpCqFib9WnA/640?wx_fmt=jpeg)

  

相较于前两本大厚书，这两本书更加亲民，小白可以买来看看，还是很适合入门的。

## 4 计算机网络

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MspicVeFKBcEkU1GcE8YbqlKlaqZez3oA0ib6hohvOJ5nCp4ibYqm5LqibaQ/640?wx_fmt=jpeg)

  

没错，就是这本教材，作为非科班选手自己看这本书，那叫一个欲仙欲死啊，看完就忘记了。

# 操作系统

  

## 1 深入理解计算机系统

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsShU8y0B9b6pJ4ExOIexD8LOolfhVvAeFicg0vQXzaZqmZoj9Uj178gA/640?wx_fmt=jpeg)

  

这本书不是严格意义上的操作系统书籍，而是对计算机基础和操作系统做了一个串联，可以解决你很多对于计算机的疑惑，并且对操作系统有一定理解。

其实这本书还是很厚的，有一定难度，建议有一些基础后再看。

## 2 现代操作系统

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsoRGA0QC4DLZy08ybPlaLVKrYS2ricexI06zbPtuHT1VrjLC2HsXAAdA/640?wx_fmt=jpeg)

  

这本书其实我没怎么看，比较详细地讲解了操作系，但是也是大家都比较推崇的书，还是那句话，很厚，慎看。

## 3 Linux内核设计与实现

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsIsAElOVjXPZaPLbqRxBDHtcN7dLOVpTxicFfMCSlRvtibypntLxJbItg/640?wx_fmt=jpeg)

  

当你对操作系统有一定理解以后，这本书将为你打开学习Linux内核的大门，当然在此之前你得有一定的c语言开发能力，以及对Linux的了解。反正，我现在还没开始准备好看这本书。

## 4 Unix网络编程

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MstdxG8HczJnOCP6M5C06Zt4QgKn3koJ5qLJk6R9cT2p8ZJt0PRz9Yxg/640?wx_fmt=jpeg)

  

这两本书的厚度绝对让你感到绝望，其实就是讲解了Unix内核是如何实现网络通信的，其中涉及到很多网络，操作系统的知识，并且你要熟悉c语言。总之，这是一本奉为网络编程神书的存在，不过我等新手还是拿他压压泡面就好了。

网上有很多博客会参照该书的内容，可以去看看它们。

# 数据结构与算法

  

不瞒你说，由于我非科班，所以算法基础比较差，数据结构是考研时跟着天勤考研指南学的，学习算法也是一路坎坷，举步维艰。还是分享几本比较靠谱的书吧。

## 1 算法导论

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msian7X4kGKPeU2lEOTN6bgTKbYCRFvGp3a38OaCanfMNaaH35vQEicEmQ/640?wx_fmt=jpeg)

  

你问我是不是认真的，我就是说说而已，这本书我买来没看过。
## 2 数据结构与算法（Java版）

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsOZ46lb6ATwho5MxHyvCmia91uVp5rd5PTGJrGiacONVibgVU5whibxt0YA/640?wx_fmt=jpeg)

  

这本书对于初学者来说还是比较友好的，当然学Java的看这本。

## 3 算法图解，啊哈算法

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsfZ0XycKZ0GYdtA9vD78ZGA4MHQfmDLMA2WWjmoU7VOnvM7cCHv7jKw/640?wx_fmt=jpeg)

  

这两部书籍非常适合学习算法的入门，前者主要用图解的形式覆盖了大部分常用算法，包括dp，贪心等等，可以作为入门书，后者则把很多常用算法都进行了实现，包括搜索，图，树等一些比较高级的常用算法。

## 4 剑指offer

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msicrg4GrcBwcfVskpU2ER3ichxkZLmelObPkle2xZXQakpqJ72iazxubdQ/640?wx_fmt=jpeg)

  

这本书还是要强烈推荐的，毕竟是面试题经常参考的书籍，当然最好有前面基本的铺垫再看，可能收获更大，这本书在面试之前一般都要嚼烂。

## 5 LeetCode

  

这不是一本书，是一个题库，算法么，终究还是要靠刷题来提升熟练度的。

# Java基础

  

# 1 Java编程思想

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msxv333llv2svDSzJhMehe7MGe0dmUWMayDFkEJthXjTV5IzOgzGHUDw/640?wx_fmt=jpeg)

  

这本书也是被誉为Java神书的存在了，但是对新手不友好，适合有些基础再看，当然要选择性地看。我当时大概只看了1/3

# 2 Java核心技术卷一

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Ms4k0NHxprIMXNFOPQPIgsL3JQMbwZlmTTYicmYFZaGSRwmw0VNXLtxrA/640?wx_fmt=jpeg)

  

这本书还是比较适合入门的，当然，这种厚皮书要看完还是很有难度的，不过比起上面那本要简单一些

# Java进阶

  

## 1 深入理解JVM虚拟机

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Ms3a2wib6W7zxWmMRGeeaj7qSDgDbcSSRg4JiafJ6veibia1huSMYiaIApeOA/640?wx_fmt=jpeg)

  

这本书是Java开发者必须看的书，很多jvm的文章都是提取这本书的内容。JVM是Java虚拟机，赋予了Java程序生命，所以好好看看把，我自己就已经看了三遍了。

## 2 Java并发编程实战

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsnJM4AZySogwnc18edVYiaibWbtZZlJt87zQ79mQxBdib1td82ceibdxQjg/640?wx_fmt=jpeg)

  

这本书是Java 并发包作者写的书，所以非常权威，但是比较晦涩难懂，我看的云里雾里的，大家可以按需选择。

## 3 Java并发编程艺术

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Ms5dloj3RticzOPib4sLQ198ibd6uukhh9mQAkylibNxZcQVgNmdgpJuuYibg/640?wx_fmt=jpeg)

  

这本书是国内作者写的Java并发书籍，比上面那一本更简单易懂，适合作为并发编程的入门书籍，当然，学习并发原理之前，还是先把Java的多线程搞懂吧。

## 4 Effective Java

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsqHAgLGrtTqQC6EXb9UnIw1A7xXZwzPvNzLVBcMovlicXs6GdhapZQ6w/640?wx_fmt=jpeg)

  

这本书和Java编程思想一样被称为神书，主要讲的是Java的一些优化技巧和规范，没有一定开发经验的人看这本书会觉得索然无味，不知所云，所以，先搁着吧。

## 5 Java性能调优指南

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MswO0s5EYF4ETZ75h4mIwDnGWPDdkBSZLCypMFEH6bx3fFsYN6HFhH2w/640?wx_fmt=jpeg)

  

说到JVM调优，可能会有很多的面试题浮现在你的脑海里，这本书比较权威地讲解了Java的性能调优方法，不过我还没怎么看，有空好好看看。

## 6 Netty权威指南

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsVAiaXRCibH0niccx3lI8eQJEcewVbzymYIfSiafytfibqg6uY4OWjN8HXbg/640?wx_fmt=jpeg)

  

Netty是基于NIO开发的网络编程框架，使用Java代码编程，其实这本书也可以放在网络或者Java Web部分。不过NIO属于JDK自带的一部分，是必须要掌握的，而对于Netty，大家如果学有余力的话也可以看看。

# JavaWeb

  

## 1 深入JavaWeb技术内幕

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsXQCMLd9PwB74EAoWDZWKslQaicJn0lkfpS8vUiba9n4rQbnN4jsJXibRQ/640?wx_fmt=jpeg)

  

这本书是Java Web的集大成之作，涵盖了大部分Java Web开发的知识点，不过一本书显然无法把所有细节都讲完，但是作为Java Web的入门或者进阶书籍来看的话还是很不错的。

## 2 How Tomcat Works

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsvItQbtqibRdPJvHrPu5WJlJLPyP9JS7jIsM8PwvQarn2bndmoF4ricKg/640?wx_fmt=jpeg)

  

Java Web很重要的一部分内容就是Tomcat，作为应用服务器，Tomcat使用Java开发，其源代码和架构设计都是经典之作。

这是一本讲解Tomcat基本原理的书籍，很好地通过剖析源码来讲解Tomcat的内部结构和运行机制，但是需要一定的基础才能够看懂，我还没看这本书，日后再拜读。

## 3 Tomcat架构解析

  

![](https://mmbiz.qpic.cn/mmbiz_png/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsR7yXam5xjrMJc5FajShzqK8ib5FcIBUqGdzcvcJe6XEuW8Vyc5PKRqA/640?wx_fmt=png)

和上面这本书类似，主要讲解Tomcat原理和架构，，要看懂这本书的话，前提是你要对Java基础，NIO以及设计模式有所了解。这本书我也还没看。

## 4 Spring实战

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsE6AxZgMjGh3HYb1tblQVUGk6FjOQ74omphiaqrE2VZgqY8aianHaA9VQ/640?wx_fmt=jpeg)

  

这本书适合作为Spring的入门书籍，把Spring的概念，使用方式等内容都讲的比较清楚。并且也介绍了Spring MVC的部分内容，Spring框架还是更注重实践的，所以跟着书上的内容去做吧。

## 5 Spring源码深度解析

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msia1wMFrvWicOC3kEiazfqS4cz9eXmVdwmu1G7ucIOUUtx914KlicxIwuOA/640?wx_fmt=jpeg)

  

学会Spring基础后，可以花点时间看看这本讲源码的书了，这本书对于新手来说不太友好，主要也是因为Spring的代码结构比较复杂，大家也可以看一些博客来完成对源码的学习。

## 6 Spring MVC学习指南

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msibbox9gJ2wV8EZofhrs4RXLcZpXCUboGCChzf2NNScibtVCytt1iamwdw/640?wx_fmt=jpeg)

  

本书是一本Spring MVC的教程，内容细致、讲解清晰，非常适合Web开发者和想要使用Spring MVC开发基于Java的Web应用的读者阅读。但是由于出的比较早，所以不太适合现在版本。

## 6 Maven实战

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Ms9k4687xRSru4FicK1Mia6xO0Z6cBQVuYibfzUHlq2Kh9XpN5Oel37tbibA/640?wx_fmt=jpeg)

  

Maven是Java Web开发中不可缺少的一部分，如果想要全面了解其实现原理的话，可以看看这本书。

# 数据库

  

## 1 数据库原理

  

数据库原理应该是教材吧，这本书作为数据库入门来说还是可以的，毕竟不是专门做DB的，看大厚书用处不大，这本书把数据库的基本概念都讲完了。

## 1 sql必知必会

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsDz6nCG9LhHxjVVEIrB5n03443oFENiak2kwJ1Eicj0diacfp67icUAFjYg/640?wx_fmt=jpeg)

  

这本书主要是讲解sql语句怎么写，毕竟数据库最重要的一点就是要熟练地使用sql语句，当然这本书也可以当做工具书来使用。

## 2 深入浅出MySQL

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msgwk2uEmyhyHlTAbEL2GHbW0BQaXSUm5myDq9XbJWEa6eQBXpcyo2vg/640?wx_fmt=jpeg)

  

这本书适合作为MySQL的学习书籍，当你有了一定的MySQL使用经验后，可以看看它，该书从数据库的基础、开发、优化、管理维护和架构5个方面对MySQL进行了详细的介绍，讲的不算特别深，但是足够我们使用了。这本书我也只看了一部分。

## 3 MySQL技术内幕：innodb存储引擎

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsvicPSEMHB2AyGQxBNic3r3LBEukSXlTTxKExRazE2HEDLtXEqVNkq6hA/640?wx_fmt=jpeg)

  

看完上面那本书以后，对MySQL算是比较熟悉了，不过对于面试中常考的innodb引擎，还是推荐一下这本书把，专门讲解了innodb存储引擎的相关内容。我还没有细看，但是内容足够你学好innodb了。

## 4 高性能Mysql

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsfLtH0gzib1kXiab1iaB7T7W4DqJhEIY7DaY6XMskos6OSS8MwblfexERg/640?wx_fmt=jpeg)

  

这本书可以说是很厚了，更适合DBA拜读，讲的太详细了，打扰了。

## 5 Redis实战

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MscrpdBT6nbJ32zd46Q0cjkH7ReTjuE7OibZpMZPbhNe74t6iagU03mO5A/640?wx_fmt=jpeg)

  

和MySQL一样，学习Redis的第一步最好也是先实战一下，通过这本书就可以较好地掌握Redis的使用方法，以及相关数据结构了。

## 6 Redis设计与实现

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msre7k7xFaH32lu2ibDibNbkIpnRvK4XP5KJicLfZicteOvkFbttIZ8bZKcg/640?wx_fmt=jpeg)

  

该书全面而完整地讲解了 Redis 的内部运行机制,对 Redis 的大多数单机功能以及所有多机功能的实现原理进行了介绍。这本书把Redis的基本原理讲的一清二楚，包括数据结构，持久化，集群等内容，有空应该看看。

# 分布式

  

## 1 分布式Java应用

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsDM0fL3YQ81tyskxJRdW4raFbwCUIMVCXw3aQ594DR9ib6OdTVLm7DZg/640?wx_fmt=jpeg)

  

这本书是淘宝大牛写的书，主要讲的就是使用rpc来构建分布式的Java应用，讲了很多基础的东西，可以作为入门书籍，不过这本书我之前没有遇到，所以没看过。

## 2 大型网站技术架构

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Ms54ygz1Uicdj9SkbbewcyA78SsESGDNn3VNjTDTDhW18G406UaOlCNXA/640?wx_fmt=jpeg)

  

这本淘宝系技术指南还是非常值得推崇的，可以说是把大型网站的现代架构进行了一次简单的总结，内容涵盖了各方面，主要讲的是概念，很适合没接触过架构的同学入门。看完以后你会觉得后端技术原来这么博大精深。
## 3 大型分布式网站架构设计与实践

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsicmqxK5NtFkiaEEMuOicZUGWQlloNzIhsKvrLibZYFOic0MtTo2iciaxrUH3w/640?wx_fmt=jpeg)

  

这本书与上面一书相比更倾向于实践，主要讲的是分布式架构的一些解决方案，但是如果你没有接触过相关的场景，可能会看的云里雾里。

## 4 分布式服务框架原理与实践

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsnYBbshOibs9eMXMpsb4BAMNe2Gl0zfbdoEnwVkgYYZqnHE8jTNI5x7Q/640?wx_fmt=jpeg)

  

上面那本书讲的是分布式架构的实践，而这本书更专注于分布式服务的原理讲解和对应实践，很好地讲述了分布式服务的基本概念，相关技术，以及解决方案等，对于想要学习分布式服务框架的同学来说是本好书。

## 5 大型网站系统与Java中间件开发实践

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsA0cLZgXBkHU0FtBGaD3WusGHu9VGgAeFGy2YaK7dSlOibLnVtxMZHDA/640?wx_fmt=jpeg)

  

话说这些书的名字真实够长的。这本书也是阿里系出品，主要讲的是大型网站系统以及使用的相关中间件，毕竟阿里是中间件大户，所以很多中间件对应用再网站系统中，对于想学习这方面技术的同学来说可以一看。

## 6 从Paxos到Zookeeper分布式一致性原理与实践

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msl8vtjticonEQopz007VDV1ZqA024AaSWicLpW12ib0bqAc5ibNK5XpKGGg/640?wx_fmt=jpeg)

说起分布式系统，我们需要了解它的原理，相关理论及技术，这本书也是从这个角度出发，讲解了分布式系统的一些常用概念，并且带出了分布式一哥zookeeper，可以说是想学分布式技术的同学必看的书籍。

## 7 大规模分布式存储系统

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsSOY9dKWKloIqmyiarqrJr3yZDchPndlWFV6k5QyvdLoVA8mWtcfpT4A/640?wx_fmt=jpeg)

  

这本书是阿里巴巴oceanbase核心开发大佬写的书，讲的是分布式存储相关的原理和解决方案，该书不是很厚，如果想做存储方向的同学可以看看。

# 云计算

  

云计算方面的内容主要是我在实习阶段接触的，如果只是应用开发方向的话这块不懂也罢。主要还是看个人兴趣。

## 1 OpenStack设计与实现

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsHhNAAvX06XgaWh8iaxT0Kqj8fdERs48qkA8wSxpnva9WWrMx9O7ibEBQ/640?wx_fmt=jpeg)

  

OpenStack是基于KVM技术的一套私有云生态。这本书很好地讲解了OpenStack的一些基本原理，包括各个组件的设计与实现，比起另一本《OpenStack王者归来》简单易懂的多。当然，前提最好是你对Linux内核和网络有所了解。

## 2 docker入门与实践

  



![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsHR3BrVSXFjib3REYKciasfa8VQ5iaPKdwEp6I73ONWZDbroKSicYib4QvsQ/640?wx_fmt=jpeg)

  

docker是现在应用部署的主流方案了，所以了解一下还是挺有必要的，这本书作为入门书籍足够让你会使用docker了。

## 3 kubenetes权威指南

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MspWgNeRfHAzCxNicg1BOFIYL2jUgGB7CgCXxUqfVsPRicTppk49HNSNlQ/640?wx_fmt=jpeg)

  

kubenetes是docker的集群解决方案，也是一个微服务的解决方案，所以这本书涉及的内容非常多，需要有网络，操作系统以及docker相关的基础。我看这本书的时候可以说是非常晕的。

# 大数据

  

和云计算一样，大数据方面的内容也不算是Java后端技术栈所需要的，但是这也能为你加分，并且让你跟大数据开发的岗位沾点边，何乐而不为。

## 1 大数据技术原理与应用

  

![](https://mmbiz.qpic.cn/mmbiz_png/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MscJ1Mvq3qTe5fVOXUvyqPHzPZvEvDjhsQVoicfjCibkxRDVWOjyj0DmFA/640?wx_fmt=png)

  

作为大数据方面的一本教材，厦大教授写的这本书还是非常赞的，从最基础的原理方面讲解了Hadoop的生态系统，并且把每个组件的原理都讲得比较清楚，另外也加入了spark，storm等内容，可以说是大数据入门非常好的一本书了。

## 2 Hadoop实战

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MsbqrsXhbiclTXRA3gI8wibEV5pNJ11XAN3SEVu0zXh4vMEN942MqblpOw/640?wx_fmt=jpeg)

  

这本书很厚，我买的时候大概看了一遍，一头雾水。所以建议先看上面那本书，再来看更加进阶的书籍，否则可能就是浪费时间了。

## 3 Hadoop权威指南

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Ms1LB8BJFyw8npMNjUajzicmZRO7QibDubblqAl88OuN6WAVtAUqILGeXA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)

  

这本书主要对Hadoop生态中组件进行详细讲解，有点太详细了，如果不是做大数据方向的话，可以不看。

# 其他：

  

## 1 Git权威指南

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5Msz3J8ciah5m58wtiaLSnT7dHIpcVqBVggn2wmS6SVsGjvSeB5OVc3rZ0w/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)

  

Git是现在大公司主流的代码协同工具，如果你想要了解其底层原理，可以看看这本书。

## 2 重构

  

![](https://mmbiz.qpic.cn/mmbiz_jpg/XHh0SksQZPOTBB6VxkibFrAMBJ8ibbR5MssH1SXJian4O6D85sZF2OseyGmKJjxE0aJ2GFlNlPdPmZMibwJahTIjTw/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)

  

这本书主要介绍的是代码重构的一些指导思想和最佳实践。有重构需求的同学可以看看。

## 3 - n

  



其他方面的书籍就太多了，比如软件工程方面的，测试方面，Linux方面，以及讲一些程序员自我提升的书籍，就不一一列举了，因为这部分的内容可以不归入Java后端的技术栈。

# 微信公众号

## 个人公众号：黄小斜

黄小斜是跨考软件工程的 985 硕士，自学 Java 两年，拿到了 BAT 等近十家大厂 offer，从技术小白成长为阿里工程师。

作者专注于 JAVA 后端技术栈，热衷于分享程序员干货、学习经验、求职心得和程序人生，目前黄小斜的CSDN博客有百万+访问量，知乎粉丝2W+，全网已有10W+读者。

黄小斜是一个斜杠青年，坚持学习和写作，相信终身学习的力量，希望和更多的程序员交朋友，一起进步和成长！

**原创电子书:**
关注公众号【黄小斜】后回复【原创电子书】即可领取我原创的电子书《菜鸟程序员修炼手册：从技术小白到阿里巴巴Java工程师》

**程序员3T技术学习资源：** 一些程序员学习技术的资源大礼包，关注公众号后，后台回复关键字 **“资料”** 即可免费无套路获取。	

**考研复习资料：** 
计算机考研大礼包，都是我自己考研复习时用的一些复习资料,包括公共课和专业的复习视频，这里也推荐给大家，关注公众号后，后台回复关键字 **“考研”** 即可免费获取。	

![](https://img-blog.csdnimg.cn/20190829222750556.jpg)


## 技术公众号：Java技术江湖

如果大家想要实时关注我更新的文章以及分享的干货的话，可以关注我的公众号【Java技术江湖】一位阿里 Java 工程师的技术小站，作者黄小斜，专注 Java 相关技术：SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程，偶尔讲点Docker、ELK，同时也分享技术干货和学习经验，致力于Java全栈开发！

**Java工程师必备学习资源:** 一些Java工程师常用学习资源，关注公众号后，后台回复关键字 **“Java”** 即可免费无套路获取。

![我的公众号](https://img-blog.csdnimg.cn/20190805090108984.jpg)

​                     
