具体描述
本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的书中,一方面结合作者的经验介绍了这些知识点;另一方面提供了进一步学习这些知识点的参考资料,希望能给想掌握编写分布式Java应用知识点的开发人员提供一定的帮助以及指引,同时也希望书中分享的经验对于目前正在从事分布式Java应用编写的开发人员提供帮助。
实践是最好的成长 发表是最好的记忆。
分布式Java应用第一手经验的总结和分享。
分布式Java应用知识点的全景图。
作者简介
林昊,淘宝网架构师,China OSGi User Group Director,2006年开始在商业产品中使用OSGi,并结合自己的经验编写了《OSGi实战》、《OSGi进阶》两篇Opendoc以及《OSGi原理与最佳实践》一书,推动了OSGi在国内的使用;2007年进入淘宝,负责淘宝服务框架的开发,此框架目前每天承担了100亿以上的服务请求量,个人关注的方向为模块化、动态化Java系统,以及高性能、高可用、低成本的大型分布式Java系统的构建。
目录信息
第1章 分布式Java应用
1.1 基于消息方式实现系统间的通信
1.1.1 基于Java自身技术实现消息方式的系统间通信
1.1.2 基于开源框架实现消息方式的系统间通信
1.2 基于远程调用方式实现系统间的通信
1.2.1 基于Java自身技术实现远程调用方式的系统间通信
1.2.2 基于开源框架实现远程调用方式的系统间通信
第2章 大型分布式Java应用与SOA
2.1 基于SCA实现SOA平台
2.2 基于ESB实现SOA平台
2.3 基于Tuscany实现SOA平台
2.4 基于Mule实现SOA平台
第3章 深入理解JVM
3.1 Java代码的执行机制
3.1.1 Java源码编译机制
3.1.2 类加载机制
3.1.3 类执行机制
3.2 JVM内存管理
3.2.1 内存空间
3.2.2 内存分配
3.2.3 内存回收
3.2.4 JVM内存状况查看方法和分析工具
3.3 JVM线程资源同步及交互机制
3.3.1 线程资源同步机制
3.3.2 线程交互机制
3.3.3 线程状态及分析
第4章 分布式应用与Sun JDK类库
4.1 集合包
4.1.1 ArrayList
4.1.2 LinkedList
4.1.3 Vector
4.1.4 Stack
4.1.5 HashSet
4.1.6 TreeSet
4.1.7 HashMap
4.1.8 TreeMap
4.1.9 性能测试
4.1.10 小结
4.2 并发包(java.util.concurrent)
4.2.1 ConcurrentHashMap
4.2.2 CopyOnWriteArrayList
4.2.3 CopyOnWriteArraySet
4.2.4 ArrayBlockingQueue
4.2.5 AtomicInteger
4.2.6 ThreadPoolExecutor
4.2.7 Executors
4.2.8 FutureTask
4.2.9 Semaphore
4.2.10 CountDownLatch
4.2.11 CyclicBarrier
4.2.12 ReentrantLock
4.2.13 Condition
4.2.14 ReentrantReadWriteLock
4.3 序列化/反序列化
4.3.1 序列化
4.3.2 反序列化
第5章 性能调优
5.1 寻找性能瓶颈
5.1.1 CPU消耗分析
5.1.2 文件IO消耗分析
5.1.3 网络IO消耗分析
5.1.4 内存消耗分析
5.1.5 程序执行慢原因分析
5.2 调优
5.2.1 JVM调优
5.2.2 程序调优
5.2.3 对于资源消耗不多,但程序执行慢的情况
第6章 构建高可用的系统
6.1 避免系统中出现单点
6.1.1 负载均衡技术
6.1.2 热备
6.2 提高应用自身的可用性
6.2.1 尽可能地避免故障
6.2.2 及时发现故障
6.2.3 及时处理故障
6.2.4 访问量及数据量不断上涨的应对策略
第7章 构建可伸缩的系统
7.1 垂直伸缩
7.1.1 支撑高访问量
7.1.2 支撑大数据量
7.1.3 提升计算能力
7.2 水平伸缩
7.2.1 支撑高访问量
7.2.2 支撑大数据量
7.2.3 提升计算能力
· · · · · · (收起)
读后感
这本书我一直想买,但很愁自己已经都三箱书了,所以为了避免以后搬家的负担,一直控制自己不买书。 我在书店翻看了这本书,可以说,这本书把影响java分布式、性能的主要知识点都提了出来。但有的章节内容并没有深入下去。比如ESB,其实我倒觉得ESB集成异构遗留系统比较合适,...
书中真正教你如何做一个Java分布式应用的内容几乎都没有。 倒真的是以分布式场景(多线程,多系统)的场景解释了如何去优化一个应用,要注意哪些点,可能用到哪些方面的内容和知识。 其中第四章花了一大篇篇幅降了java的集合类和并发包中的类,然后解释了几个关键方法的实现...
作者自序里面说这本书写了好久,通读之后发现的确如此,各个章节之间的起伏稍大,特别是之前几个章节,到了最后两章,有点渐入佳境的意思了。分布式Java应用的范畴应该说是非常广的,可以覆盖的东西有很多,作者尽力覆盖得更多,但貌似讲解的深度一般。也许这本书更适合有经验...
虽然这本书里面有若干代码,该空格的不空格,感觉别扭。 虽然这本书里面总是说web服务器,很多地方实在告诉我们那是一个web应用服务器,有些模糊和界定不严格。 但还说要推荐的,就冲着里面的JVM、并发包、调优部分也是值得购买的一本书,虽然并发部分(JUC)有些虎头蛇尾,深...
用户评价
这本书的篇幅相当可观,但阅读体验却出乎意料地流畅,这得益于其精妙的章节组织结构。我特别欣赏作者在处理并发控制这一复杂话题时的细腻笔触。他没有直接抛出复杂的锁机制或乐观并发控制的公式,而是先通过一系列精心设计的案例场景,展示了如果不加以有效控制,系统会陷入何种“灾难”。紧接着,作者才逐一引入各种解决方案,并深入剖析了每种方案的适用边界和性能权衡。比如,关于分布式事务的处理,作者不仅仅局限于两阶段提交(2PC)的介绍,而是详细对比了Saga模式和TCC框架在实际业务落地中的优劣,这种兼顾理论深度与工程实践的写作风格,对于一线架构师而言,无疑是极其宝贵的财富。每当我觉得某个概念快要变得晦涩难懂时,作者总能适时地提供一个图表或一个现实世界的例子来点亮思路,阅读体验可以说是相当“治愈”。
我发现这本书在数据存储和一致性模型上的探讨,显示出作者深厚的学术背景和丰富的实战经验。很多书籍在讲到CAP定理时,往往一带而过,但在这里,作者花了足足一个章节的篇幅,细致地剖析了不同数据库在“C”、“A”、“P”之间做抉择时的具体技术路径。从Paxos到Raft的演进,从CP到AP系统的演变,逻辑链条清晰而有力。我尤其喜欢作者对“最终一致性”的讨论,他不仅介绍了Bloom Filter、Merkle Tree等辅助工具,还深入分析了这些工具如何帮助我们在不牺牲过多性能的前提下,最大化地保障数据视图的正确性。这本书的阅读过程,就像是参加了一场由顶尖专家主持的深度技术研讨会,观点犀利,论据充分,让我对数据持久化这一基石有了更扎实的理解。
坦白说,这本书的难度不低,它要求读者具备一定的编程基础和网络协议知识,但如果能坚持读完,收获将是指数级的。我印象最深的是关于“可观测性”和“追踪系统”的章节。在微服务日益膨胀的今天,如何快速定位一个跨越数十个服务的请求瓶颈,是所有架构师面临的共同难题。这本书不仅介绍了OpenTelemetry等标准,更深入探讨了分布式追踪系统中Span、Trace的上下文传递机制,以及如何设计高效的采样策略。作者的观点非常前瞻,他强调了从“事后调试”转向“事前预警”的理念,并给出了具体的指标体系构建方法。这本书不仅仅是关于如何构建分布式系统,更是关于如何管理和运维一个复杂、动态的分布式生态系统,其前瞻性和指导意义,值得所有希望在技术领域深耕的工程师反复研读。
作为一名后端工程师,我一直在寻找一本能帮助我从“写代码”跨越到“设计系统”的参考书。这本著作恰好填补了这一空白。它对于“服务治理”部分的论述,更是令人眼前一亮。我原本对熔断、限流这些概念停留在“听说过”的层面,但书中对这些机制背后的原理,如时间窗口计算、请求排队策略的数学基础,都有详尽的推导和论证。更棒的是,作者没有止步于理论,而是提供了大量主流组件(如Hystrix/Resilience4j)的源码解读片段,让我们能清晰地看到这些高级特性是如何在代码层面被实现的。这种“知其然更知其所以然”的引导方式,极大地提升了我对系统稳定性的掌控感。我甚至回去优化了我们团队正在使用的配置,效果立竿见影,这让我对这本书的实战价值深信不疑。
这本书的封面设计很有质感,深邃的蓝色调配上简洁的字体,让人对即将阅读的内容充满期待。我原本以为它会是一本专注于技术细节的工具书,但翻开第一页,就被作者娓娓道来的叙事方式所吸引。它并没有急于展示复杂的代码框架,而是从宏观的视角切入,探讨了分布式系统在现代互联网架构中的核心地位和挑战。特别是关于系统一致性、容错性设计的阐述,非常深入浅出,即便是初次接触分布式概念的读者也能很快抓住要点。作者用了很多生动的比喻来解释那些抽象的理论,比如将数据同步比作多个人共同完成一项复杂的任务,每个人都要确保自己的那部分工作是准确无误且及时汇报的。读完前几章,我感觉自己对构建健壮、高可用的服务有了一个全新的认识框架,不再是零散的技术点堆砌,而是一个完整的、有逻辑的工程思维体系。这本书更像是一本“思想启蒙录”,指引我如何从单体应用思维中跳脱出来,拥抱微服务和分布式带来的复杂性与机遇。
感觉没写完就结束了,后面很仓促,还是有点料,但是基本就是说个皮毛让你自己查吧~
大范围的Java方面分布式的入门讲解,对于头次接触的新手(比如我)来说能够确定优化应用的学习的方向和知识点,但是更多(主要是更详细更细节)的分布式的东西还是少了点,期望能有更加细节的实例的东西。
曾经误解这本书了,当时其实只是看了一下目录。后来再看觉得这书涉及到java底层以及性能优化,也见到了作者本人,nice~
这本书2013年就买了,当时绝版了在淘宝买的复印版,想不到现在豆瓣电子版中又活了起来。 之前刚刚读了《大型网站架构技术》,算是同一个大主题,但前者主要讲网站机构的理论和最佳实践,而这本书则实践性比较强,还涉及了java网络编程,并行编程,jvm性能调优等等,每个方面都值得深入研究。
不错的书,比较适合分布式开发的入门学习。