聚焦实战技能,剖析底层原理:Netty+Redis+ZooKeeper+高并发实战

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 移动时代、5G时代、物联网时代的大幕已经开启,它们对于高性能、高并发的开发知识和技术的要求,抬升了Java工程师的学习台阶和面试门槛。

前言

移动时代、5G时代、物联网时代的大幕已经开启,它们对于高性能、高并发的开发知识和技术的要求,抬升了Java工程师的学习台阶和面试门槛。

大公司的面试题从某个侧面映射出生产场景中对专项技术的要求。高并发的面试题以前基本是BAT等大公司的专利,现在几乎蔓延至与Java项目相关的整个行业。例如,与Java NIO、Reactor模式、 高性能通信、分布式锁、分布式ID、分布式缓存、高并发架构等技术相关的面试题,从以前的加分题变成了现在的基础题,这也映射出开发Java项目所必需的技术栈:分布式Java框架、Redis缓存、分布式搜索ElasticSearch、分布式协调ZooKeeper、消息队列Kafka、高性能通信框架Netty。

本书内容

本书中重在讲解Netty、Redis、 ZooKeeper的使用方法,但是还有一一个更大的价值,就是为大家打下Java高并发开发技术的坚实基础。

  1. 首先,本书从操作系统的底层原理开始讲解:浅显易懂地剖析高并发IO的底层原理,并介绍如何让单体Java应用支持百万级的高并发;从传统的阻塞式OIO开始,细致地解析Reactor高性能模式,介绍高性能网络开发的基础知识;从Java的线程Join和线程池开始,介绍Java Future和Guava ListenableFuture两种常用异步回调技术。这些原理方面的基础知识非常重要,是大家在日常开发Java后台应用时解决实际问题的金钥匙。
  2. 接着,重点讲解Netty。这是目前当之无愧的高性能通信框架皇冠上的明珠,是支撑其他众多著名的高并发、分布式、大数据框架底层的框架。这里有两大特色:一是 从Reactor模式入手,以四两拨千斤的方式来学习Netty原理;二是通过Netty来解决网络编程中的重点难题,如ProtoBuf序列化问题、半包问题等。
  3. 然后,对ZooKeeper进行详细的介绍。除了全面地介绍使用CuratorAPI操作ZooKeeper之外,还从实战的角度出发,介绍如何使用ZooKeeper来设计分布式ID生成器,并对重要的SnowFlake算法进行详细的介绍。另外,还通过图文并茂和结合小故事的方式浅显易懂地介绍分布式锁的基本原理,并完成一个ZooKeeper分布式锁的小实践案例。
  4. 接下来,从实践开发层面对Redis进行说明,详细介绍Redis的5种数据类型、客户端操作指令、Jedis Java API。另外,还通过spring-data-redis来完成两种方式的数据分布式缓存,并详尽地介绍Spring的缓存注解以及涉及的SpEL表达式语言。
  5. 最后,通过CrazyIM项目介绍一个亿级流量的高并发IM系统模型。这个高并发架构的系统模型不仅仅限于IM系统,通过简单的调整和适配,就可以应用于当前主流的Java后台系统。

目录总览

资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,这两份PDF小编已经为大家整理好了,需要免费领取的朋友可以点击此处来获取就可以了!

第1章高并发时代的必备技能

高并发时代已然到来,Netty、 Redis、 ZooKeeper是 高并发时代的必备工具。

第2章高并发IO的底层原理

本书的原则是:从基础讲起。IO的原理和模型是隐藏在编程知识底下的,是开发人员必须掌握的基础原理,是基础的基础,更是通关大公司面试的必备知识。

第3章Java NIO通信基础详解

高性能的Java通信, 绝对离不开Java NIO技术,现在主流的技术框架或中间件服务器,都使用了Java NIO技术,譬如Tomcat、Jetty、Netty。学习和掌握NIO技术,已经不是- -项加分技能,而是一项必备技能。不管是面试,还是实际开发,作为Java的“攻城狮”(工程师的谐音),都必须掌握NIO的原理和开发实践技能。

第4章鼎鼎大名的Reactor反应器模式

到目前为止,高性能网络编程都绕不开反应器模式。很多著名的服务器软件或者中间件都是基于反应器模式实现的。

比如说,“全宇宙最有名的、最高性能”的Web服务器Nginx,就是基于反应器模式的;如雷贯耳的Redis,作为最高性能的缓存服务器之一,也是基于反应器模式的:目前火得“-塌糊涂"、在开源项目中应用极为广泛的高性能通信中间件Netty,更是基于反应器模式的。从开 发的角度来说,如果要完成和胜任高性能的服务器开发,反应器模式是必须学会和掌握的。从学习的角度来说,反应器模式相当于高.性能、高并发的一项非常重要的基础知识,只有掌握了它,才能真正掌握Nginx、Redis、 Netty等这些大名鼎鼎的中间件技术。

正因为如此,在大的互联网公司如阿里、腾讯、京东的面试过程中,反应器模式相关的问题是经常出现的面试问题。总之,反应器模式是高性能网络编程的必知、必会的模式。

第5章并发基础中的Future异步回调模式

随着业务模块系统越来越多,各个系统的业务架构变得越来越错综复杂,特别是这几年微服务架构的兴起,跨设备跨服务的接口调用越来越频繁。打个简单的比方:现在的-一个业务流程,可能需要调用N次第三方接口,获取N种上游数据。因此,面临-一个大的问题是:如何高效率地异步去调取这些接口,然后同步去处理这些接口的返回结果呢?这里涉及线程的异步回调问题,这也是高并发的一个基础问题。

第6章Netty原理与基础

Netty是为了快速开发可维护的高性能、高可扩展、网络服务器和客户端程序而提供的异步事件驱动基础框架和工具。换句话说,Netty是一个Java NIO客户端/服务器框架。基于Netty,可以快速轻松地开发网络服务器和客户端的应用程序。与直接使用Java NIO相比,Netty给 大家造出了一个非常优美的轮子,它可以大大简化了网络编程流程。例如,Netty 极大地简化TCP、UDP套接字、HTTP Web服务程序的开发。

资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,这两份PDF小编已经为大家整理好了,需要免费领取的朋友可以点击此处来获取就可以了!

第7章Decoder与Encoder重要组件

大家知道,Netty 从底层Java通道读到ByteBuf:二进制数据,传入Netty通道的流水线,随后开始入站处理。

在入站处理过程中,需要将ByteBuf.二进制类型,解码成Java POJO对象。这个解码过程,可以通过Netty的Decoder解码器去完成。

在出站处理过程中,业务处理后的结果(出站数据),需要从某个Java POJO对象,编码为最终的ByteBuf.二进制数据,然后通过底层Java通道发送到对端。在编码过程中,需要用到Netty的Encoder编码器去完成数据的编码工作。

第8章JSON和ProtoBuf序列化

我们在开发一些远程过程调用(RPC)的程序时,通常会涉及对象的序列化/反序列化的问题,例如一个"Person"对象从客户端通过TCP方式发送到服务器端;因为TCP协议(UDP等这种底层协议)只能发送字节流,所以需要应用层将Java POJO对象序列化成字节流,数据接收端再反序列化成Java POJO对象即可。“序列化”- -定会涉及编码和格式化(Encoding & Format),目前我们可选择的编码方式有:

第9章基于Netty的单体IM系统的开发实践

本章是Netty应用的综合实践篇:将综合使用前面学到的编码器、解码器、业务处理器等知识,完成一个聊天系统的设计和实现。

第10章ZooKeeper分布式协调

ZooKeeper (本书也简称ZK )是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

第11章分布式缓存Redis

缓存是一个很简单的问题,为什么要用缓存?主要原因是数据库的查询比较耗时,而使用缓存能大大节省数据访问的时间。举个例子,假如表中有2千万个用户信息,在加载用户信息时,一次数据库查询大致的时间在数百毫秒级别。这仅仅是- - 次查询,如果是频繁多次的数据库.查询,效率就会更低。提升效率的通用做法是把数据加入缓存,每次加载数据之前,先去缓存中加载,如果为空,再去查询数据库并将数据加入缓存,这样可以大大提高数据访问的效率。

第12章亿级高并发IM架构的开发实践

本章结合分布式缓存Redis、分布式协调ZooKeeper、高性能通信Netty,从架构的维度,设计- -套亿级IM通信的高并发应用方案。并从学习和实战的角度出发,将联合“疯狂创客圈”社群的高性能发烧友们,起持续迭代出一个支持亿级流量的IM项目,暂时命名为“CrazyIM"。

资料全部真实有效,不会缺页,不会只是大纲!!!由于文章篇幅有限,为了不耽误大家宝贵的时间,这两份PDF小编已经为大家整理好了,需要免费领取的朋友可以点击此处来获取就可以了!

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
17天前
|
消息中间件 缓存 NoSQL
Redis 高并发竞争 key ,如何解决这个难点?
本文主要探讨 Redis 在高并发场景下的并发竞争 Key 问题,以及较为常用的两种解决方案(分布式锁+时间戳、利用消息队列)。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Redis 高并发竞争 key ,如何解决这个难点?
|
19天前
|
缓存 NoSQL 中间件
redis高并发缓存中间件总结!
本文档详细介绍了高并发缓存中间件Redis的原理、高级操作及其在电商架构中的应用。通过阿里云的角度,分析了Redis与架构的关系,并展示了无Redis和使用Redis缓存的架构图。文档还涵盖了Redis的基本特性、应用场景、安装部署步骤、配置文件详解、启动和关闭方法、systemctl管理脚本的生成以及日志警告处理等内容。适合初学者和有一定经验的技术人员参考学习。
115 7
|
26天前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
56 5
|
1月前
|
缓存 NoSQL Java
Spring Boot与Redis:整合与实战
【10月更文挑战第15天】本文介绍了如何在Spring Boot项目中整合Redis,通过一个电商商品推荐系统的案例,详细展示了从添加依赖、配置连接信息到创建配置类的具体步骤。实战部分演示了如何利用Redis缓存提高系统响应速度,减少数据库访问压力,从而提升用户体验。
73 2
|
2月前
|
缓存 NoSQL Linux
redis的原理(三)
redis的原理(三)
redis的原理(三)
|
1月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
63 4
|
1月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
55 3
|
1月前
|
设计模式 NoSQL 网络协议
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
37 2
|
1月前
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
59 1
|
1月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
235 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
下一篇
无影云桌面