前言
今天给大家分享的Netty+Redis+ZooKeeper底层原理+高并发实战,希望大家认真阅读,跟上文章的节奏,一步步去提升自己~
大公司的面试题从某个侧面映射出生产场景中对专项技术的要求。高并发的面试题以前基本是BAT等大公司的专利,现在几乎蔓延至与Java项目相关的整个行业。例如,与Java NIO、Reactor模式、 高性能通信、分布式锁、分布式ID、分布式缓存、高并发架构等技术相关的面试题。
本书内容
本书中重在讲解Netty、Redis、 ZooKeeper的使用方法,但是还有一一个更大的价值,就是为大家打下Java高并发开发技术的坚实基础。
- 首先,本书从操作系统的底层原理开始讲解:浅显易懂地剖析高并发IO的底层原理,并介绍如何让单体Java应用支持百万级的高并发;从传统的阻塞式OIO开始,细致地解析Reactor高性能模式,介绍高性能网络开发的基础知识;从Java的线程Join和线程池开始,介绍Java Future和Guava ListenableFuture两种常用异步回调技术。这些原理方面的基础知识非常重要,是大家在日常开发Java后台应用时解决实际问题的金钥匙。
- 接着,重点讲解Netty。这是目前当之无愧的高性能通信框架皇冠上的明珠,是支撑其他众多著名的高并发、分布式、大数据框架底层的框架。这里有两大特色:一是 从Reactor模式入手,以四两拨千斤的方式来学习Netty原理;二是通过Netty来解决网络编程中的重点难题,如ProtoBuf序列化问题、半包问题等。
- 然后,对ZooKeeper进行详细的介绍。除了全面地介绍使用CuratorAPI操作ZooKeeper之外,还从实战的角度出发,介绍如何使用ZooKeeper来设计分布式ID生成器,并对重要的SnowFlake算法进行详细的介绍。另外,还通过图文并茂和结合小故事的方式浅显易懂地介绍分布式锁的基本原理,并完成一个ZooKeeper分布式锁的小实践案例。
- 接下来,从实践开发层面对Redis进行说明,详细介绍Redis的5种数据类型、客户端操作指令、Jedis Java API。另外,还通过spring-data-redis来完成两种方式的数据分布式缓存,并详尽地介绍Spring的缓存注解以及涉及的SpEL表达式语言。
- 最后,通过CrazyIM项目介绍一个亿级流量的高并发IM系统模型。这个高并发架构的系统模型不仅仅限于IM系统,通过简单的调整和适配,就可以应用于当前主流的Java后台系统。
目录总览
第1章高并发时代的必备技能
高并发时代已然到来,Netty、 Redis、 ZooKeeper是 高并发时代的必备工具。