Netty_Redis_Zookeeper高并发实战-读书笔记

发布时间 2023-05-08 11:18:49作者: 余生很贵请别浪费

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

1.netty

Netty是JBOSS提供的一个Java开源框架,基于NIO的客户端/服务器编程框架,能够快速开发高并发、高可用、高可靠的网络服务器程序,也能开发高可用、高可靠的客户端程序。

NIO是指:非阻塞输入输出(Non-Blocking IO)。

优点:

  • API使用简单,开发门槛低

  • 功能强大,预置了多种编解码功能,支持多种主流协议

  • 定制能力强,可以通过ChannelHandler对通信框架进行灵活扩展

  • 性能高,与其他业界主流NIO框架对比,Netty的综合性能最优

  • 成熟、稳定,Netty修复了JDK NIO的bug

  • 社区活跃,版本迭代周期短,发现的bug能够及时被修复

  • 面试必杀器

2.高并发利器Redis

Remote Dictionary Service 远程字典服务器。通过键值对的形式存储数据,Redis中的key只能是String类型,Value可以是String、Map、List、Set、SortedSet(有序集合)类型。

主要应用场景:缓存(数据查询、短连接、新闻内容、商品内容等)、分布式会话(Session)、聊天室好友列表、任务队列(秒杀、抢购、12306)、应用的排行榜、访问统计、数据过期处理。

优点:

  • 速度快 不需要等待磁盘IO

  • 丰富的数据结构 String list map set sortedSet

  • 单线程 避免了线程切换和锁机制的性能消耗

  • 可持久化 支持RDB和AOF两种方式,将内存中的数据写入外部的物理存储设备

  • 支持发布订阅

  • 支持Lua脚本

  • 支持分布式锁

  • 支持原子操作和事务

  • 支持主从(master-slave)复制与高可用(redis-sentinel)集群(3.0版本以上)

  • 支持管道 可以将多个命令一次性发送到服务器,然后由服务器一次性返回所有结果,在批量执行命令的场景中,可以减少网络传输开销

3.分布式利器Zookeeper

分布式协调框架,实现了分布式环境的数据一致性。简单的说:每时每刻我们访问Zookeeper的树结构时,不同的节点返回的数据都是一致的。也就是说,对Zookeeper进行数据访问时,无论是什么时间,都不会引起“脏读”    “幻读”    “不可重复读”问题。

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

1.IO读写的基本原理

典型的系统调用流程