正版保障 假一赔十 可开发票
¥ 56.32 6.3折 ¥ 89 全新
仅1件
作者谢议尊
出版社北京大学出版社
ISBN9787301289464
出版时间2019-06
装帧平装
开本其他
定价89元
货号9830337
上书时间2024-09-02
谢议尊,2016年本科毕业于中山大学软件工程专业,毕业后一直从事服务端研发工作,目前在BAT其中一家任职。擅长Java服务端编程,熟悉Java各核心框架的源码设计,有着丰富的高并发系统设计与开发经验。
**部分 基础篇
第1章 高并发的理解 2
1.2 高并发的应对策略...................................................................7
1.3 小结 ................................................................................. 12
第2章 操作系统多线程基础 13
2.1 线程概念............................................................................ 14
2.2 多线程的挑战 ......................................................................20
2.3 小结 .................................................................................24
第3章 Java 多线程基础 25
3.1 线程的使用.........................................................................26
3.2 线程的状态与状态转换...........................................................34
3.3 线程安全............................................................................40
3.4 小结 .................................................................................63
第二部分 基础篇 进阶篇
第4章 Executor 线程池框架 66
4.1 Executor 线程池框架设计概述................................................67
4.2 Executor 接口与 ExecutorService 接口.................................68
4.3 ThreadPoolExecutor 线程池 ...............................................69
4.4 Future 任务的异步结果.........................................................83
4.5 ScheduledExecutorService 任务周期性执行 ..........................92
4.6 Executors 线程池创建工具 ...................................................96
4.7 ForkJoin 任务分解与并行执行框架 ........................................ 100
4.8 小结 ............................................................................... 111
第5章 Java 线程安全字典 112
5.1 Hashtable 全同步 Map...................................................... 113
5.2 SynchronizedMap 同步器 Map.......................................... 116
5.3 ConcurrentHashMap 并发 Map ........................................ 119
5.4 ConcurrentSkipListMap 有序并发 Map............................... 142
5.5 小结 ............................................................................... 146
第6章 Java 并发队列 147
6.1 BlockingQueue 阻塞先入先出队列 ....................................... 148
6.2 BlockingDeque 阻塞先入先出双端队列.................................. 161
6.3 ConcurrentLinkedQueue 并发队列 .................................... 165
6.4 CopyOnWriteArrayList 写时拷贝列表.................................. 172
6.5 小结 ............................................................................... 180
第7章 AQS 线程同步器 181
7.1 AQS 线程同步器基础.......................................................... 182
7.2 ReentrantLock 可重入锁 ................................................... 191
7.3 CountDownLatch 同步器.......................................... 203
7.4 CyclicBarrier 循环栅栏同步器 ............................................. 209
7.5 Semaphore 信号量同步器 .................................................. 216
7.6 小结 ............................................................................... 222
第三部分 基础篇 拓展篇
第8章 分布式系统设计理论 224
8.1 系统架构演进 .................................................................... 225
8.2 分布式理论....................................................................... 231
8.3 高并发............................................................................. 234
8.4 负载均衡.......................................................................... 235
8.5 缓存机制.......................................................................... 239
8.6 异步处理.......................................................................... 243
8.7 高可用............................................................................. 244
8.8 可靠性与容错机制............................................................... 248
8.9 小结 ............................................................................... 253
第9章 Java 分布式应用设计核心技术 254
9.1 分布式服务调用 RPC 框架 ................................................... 255
9.2 分布式消息队列 ................................................................. 270
9.3 AMQP 协议实现:RabbitMQ ............................................. 270
9.4 海量消息处理:Kafka......................................................... 281
9.5 Redis 消息队列与发布订阅 .................................................. 286
9.6 分布式缓存....................................................................... 292
9.7 分布式锁..........................................................................299
9.8 小结 ............................................................................... 304
第四部分 基础篇 实战篇
第 10 章 开源框架高并发源码分析 306
10.1 Dubbo 高并发编程实战 ..................................................... 307
10.2 Netty 与 Tomcat 的线程模型.............................................. 326
10.3 小结.............................................................................. 348
第 11 章 秒杀系统设计分析 349
11.1 秒杀系统设计概述 ............................................................. 350
11.2 限流机制 ........................................................................ 355
11.3 缓存的使用...................................................................... 358
11.4 分布式锁的使用................................................................ 362
11.5 队列削峰与异步处理 .......................................................... 366
11.6 小结.............................................................................. 369
随着移动互联网的兴起,人们对互联网应用的依赖性越来越重,从生活到工作的方方面面都需要通过互联网应用来完成,如购物通过淘宝、聊天通过微信、出行通过滴滴、吃饭通过美团等。对于互联网应用而言,需要能够支撑海量用户同时在线和高效、快速地处理用户的高并发请求流量,保证应用系统在高并发场景中依然能够保持高性能和高可用。
在进行高并发应用系统设计时,首先需要对系统的并发处理能力有个清晰的认识,即该系统能够支撑多少用户同时在线,以及在大量用户同时在线、发送大量请求时,系统是否能够快速响应用户的请求等。应用系统开发人员需要关注高并发系统的相关衡量指标,具体包括:请求的响应时间、系统的吞吐量、系统每秒完成的请求数(Query Per Second,QPS)和并发在线用户数量等。
不过单纯分析以上指标是没有意义的,需要进一步结合业务特点来确定当前系统相关指标的大小是否符合要求。因为不同系统的并发用户数量和并发请求数量是不一样的,如美团外卖系统、天猫“双十一”这些都是存在海量并发用户和高并发请求的业务场景,而企业内部OA(办公自动化)系统则是并发用户量和请求数都比较少的业务场景,所以不同的系统对于以上指标的要求是不一样的。
当确定好以上相关指标后,则需要进行系统设计与开发来达到这些指标。在实现层面,由于应用系统需要运行在服务器机器上,所以首先需要保证应用系统能够充分利用服务器的硬件资源来处理用户请求,如充分利用服务器的CPU(中央处理器)、内存等硬件资源。当并发用户量和请求量太大,导致超出了单台服务器的最大处理能力时,则需要使用多台服务器来处理请求,此时对于系统设计而言就需要进行分布式系统设计来应对高并发的在线用户和高并发请求。
1.1何为高并发
在软件开发领域,特别是互联网应用,通常会根据对应的软件系统并发量的大小来衡量该系统能够支撑多少用户同时在线和对应用的正常使用。并发是指在同一个时间点,多个在线用户同时发送请求给应用系统,应用系统需要同时处理多个请求,并且需要在用户预期的时间内返回处理结果给用户。而应用系统在处理请求时,又分为并行处理和并发处理,这两个概念的含义后面会详细分析。
一个系统是否为高并发系统需要从高并发场景和应用系统的高并发处理能力两个方面来定义。首先,需要根据应用系统的业务特点和需要处理的并发请求的数量来判断该系统是否属于高并发场景,如数据库系统可能单机每秒几千并发量就已经属于高并发场景了,而对于Web应用而言则是比较低的并发量。
其次,对于高并发场景,应用系统自身是否具有高并发处理能力,即在高并发场景中,能否保证用户在预期的时间内正常获取请求的结果。如果一个应用系统既存在高并发场景,又具备高并发处理能力,则该系统属于高并发系统。
1.1.1高性能、高可用与高并发
在现代互联网应用的设计当中,通常会提到应用系统需要达到高性能、高可用和高并发这“三高”目标,其中这三个概念既有联系又有区别。
高性能是指应用系统对用户请求的处理速度快、响应时间短,对于用户来说就是该应用的操作流畅,拥有良好的用户体验,所以高性能是应用系统需要具备的基本条件。不过不同业务的高性能的定义会有所差别,如在线网络游戏需要保证在毫秒级别的响应时间,否则会让用户感觉非常卡顿,而银行转账系统则可以是秒级别,如10秒内,用户也是可以接受的。
高可用是指在任何时候用户都可以正常使用应用系统,不能出现应用系统无法提供服务的情况。我们经常听到的需要保证系统的7×24可用或者需要有多少个9的可用性保证,如99.9%、99.99%、99.999%等,这些就是高可用方面的要求。高可用是关于应用系统稳定性方面的一个定义,不同系统对于可用性方面的要求也会不一样,如股票交易系统在交易时间段内不能出现任何不可用的情况,而企业内部
— 没有更多了 —
以下为对购买帮助不大的评价