我制定了12天高并发、分布式核心知识实践学习计划,以便更快掌握分布式、高并发与高性能之间的核心知识,计划表如下:
实践12天之后,你会明白原理方面的基础知识非常重要,是大家在日常开发Java后台应用时解决实际问题的金钥匙。而实战更加促进我们对原理技术核心的理解,双向相交,让我们能够更快的往架构师的方向慢慢靠近。
原理部分:
- 熟悉高并发IO的底层原理
- 如何让单体Java应用支持百万级的高并发
- 清晰了解Reactor高性能模式
- 掌握线性池技术
- 明白Java Future和GuavaListenableFuture两种常用异步回调技术。
实战部分:
- 明白通过Netty来解决网络编程中的重点难题, 如ProtoBuf序列化问题半包问题
- 关于如何使用ZooKeeper来设计分布式ID生成器的部分会进行详细介绍并插入实战衔接
- 掌握分布式锁的基本原理、并完成一个ZooKeeper分布式锁的实战项目
- 通过springdata-redis来完成两种方式的数据分布式缓存
- 最后,通过CrazyIM项目介绍一个亿级流量的高并发IM系统模 型。这个高并发架构的系统模型不仅仅限于IM系统,通过简单的调整和适配,就可以应用于当前主流的Java后台系统。
适合学习的人群
- 对Java NIO、高性能IO、高并发编程感兴趣的院校学生。
- 需要学习Java高并发技术、高并发架构的初、中级Java工程师。
- 生产项目中需要用到Netty、Redis、ZooKeeper三大框架的架构师或者项目人员。
由于笔记的文档过大,不易全部展示内容
第1天:Java NIO实践
第一天的目标是必须掌握:Java NIO中ByteBuffer、Channel两个重要组件的使用、使用文件Channel通道的ransferFrom方法完成高效率的文件复制、SocketChannel传输通道的read读取方法、write写入方法、Selector选择器的注册以及选择器的查询。
第2天:Reactor反应器模式实践
第二天的目标是必须掌握:单线程Reactor反应器模式的实现、多线程Reactor反应器模式。
第3天:异步回调模式实践
第三天的目标是必须掌握:使用线程join方式,通过阻塞式异步调用的方式,实现泡茶喝的实例、使用FutureTask类和Callable接口,启动阻塞式的异步调用,并且获取异步线程的结果。
第4天:Netty基础实践
第四天的目标是必须掌握:Netty中Handler处理器的生命周期、ByteBuf的基本使用、使用Netty,实现EchoServer回显服务器。
第5天:解码器(Decoder)与编码器(Encoder)实践
第五天的目标是必须掌握:整数解码实践、整数相加的解码器实践、基于Head-Content协议的字符串分包解码器、多字段Head-Content协议数据包解析实践。
第6天:JSON和ProtoBuf序列化实践
第六天的目标是必须掌握:JSON通信实践、ProtoBuf通信实践。
第7~10天:基于Netty的单聊实战
第7—10天的目标是必须掌握:自定义ProtoBuf编码器/解码器、登录实践、单聊实践。
第11天:ZooKeeper实践计划
第11天的目标是必须掌握:分布式ID生成器、使用ZK实现SnowFlake ID算法
第12天:Redis实践计划
第12天的目标是必须掌握:使用RedisTemplate模板类完成Redis的缓存CRUD操作、、使用Spring缓存注解,完成Redis的缓存CRUD操作。