我是靠谱客的博主 甜美狗,最近开发中收集的这篇文章主要介绍带你吃透(Netty+Redis+ZooKeeper+高并发实战)从底层原理开始剖析前言本书内容第1章高并发时代的必备技能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

今天给大家分享的Netty+Redis+ZooKeeper底层原理+高并发实战,希望大家认真阅读,跟上文章的节奏,一步步去提升自己~

大公司的面试题从某个侧面映射出生产场景中对专项技术的要求。高并发的面试题以前基本是BAT等大公司的专利,现在几乎蔓延至与Java项目相关的整个行业。例如,与Java NIO、Reactor模式、 高性能通信、分布式锁、分布式ID、分布式缓存、高并发架构等技术相关的面试题。

本书内容

本书中重在讲解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后台系统。

目录总览

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

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

学习都是自己的,多学才让自己更有价值,想跳槽涨薪才更有底气~我给大家准备了MySQL,spring,jvm,等等的学习资料,大家可以在闲暇时间去看,想要了解的,【原理】滴我可取~

第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服务程序的开发。

第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"。

希望分享的知识都可以帮助到大家,也希望大家学了都能有收获~

最后

以上就是甜美狗为你收集整理的带你吃透(Netty+Redis+ZooKeeper+高并发实战)从底层原理开始剖析前言本书内容第1章高并发时代的必备技能的全部内容,希望文章能够帮你解决带你吃透(Netty+Redis+ZooKeeper+高并发实战)从底层原理开始剖析前言本书内容第1章高并发时代的必备技能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部