分布式Java应用

基础与实践

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
7.8411 评价豆瓣读书
阅读

作品简介

本书介绍了编写分布式Java应用涉及的众多知识点,分为了基于Java实现网络通信、RPC;基于SOA实现大型分布式Java应用;编写高性能Java应用;构建高可用、可伸缩的系统四个部分,七章内容来进行介绍,在这一本不算厚的书中,一方面结合作者的经验介绍了这些知识点;另一方面提供了进一步学习这些知识点的参考资料,希望能给想掌握编写分布式Java应用知识点的开发人员提供一定的帮助以及指引,同时也希望书中分享的经验对于目前正在从事分布式Java应用编写的开发人员提供帮助。

本书的基础部分介绍了分布式Java应用的基本实现方式(重点是SOA)、相关的JDK类库和第三方框架,并对JVM的基本机制进行了深入解析;实践部分则关注于高性能、高可用和可伸缩系统的构建等。全书文风朴实,并附有大量的代码、数据和图表,比较符合大多数程序员的口味,也非常具有实践指导意义。

林昊,淘宝网架构师,China OSGi User Group Director,2006年开始在商业产品中使用OSGi,并结合自己的经验编写了《OSGi实战》、《OSGi进阶》两篇Opendoc以及《OSGi原理与最佳实践》一书,推动了OSGi在国内的使用;2007年进入淘宝,负责淘宝服务框架的开发,此框架目前每天承担了100亿以上的服务请求量,个人关注的方向为模块化、动态化Java系统,以及高性能、高可用、低成本的大型分布式Java系统的构建。

作品目录

  1. 分布 & 分享
  2. Get Architecture Done
  3. 实践是最好的成长 发表是最好的记忆
  4. 高效写作,敏捷出版
  5. 前 言
  6. 第1章 分布式Java应用
  7. 1.1 基于消息方式实现系统间的通信
  8. 1.1.1 基于Java自身技术实现消息方式的系统间通信
  9. 1.1.2 基于开源框架实现消息方式的系统间通信
  10. 1.2 基于远程调用方式实现系统间的通信
  11. 1.2.1 基于Java自身技术实现远程调用方式的系统间通信
  12. 1.2.2 基于开源框架实现远程调用方式的系统间通信
  13. 第2章 大型分布式Java应用与SOA
  14. 2.1 基于SCA实现SOA平台
  15. 2.2 基于ESB实现SOA平台
  16. 2.3 基于Tuscany实现SOA平台
  17. 2.4 基于Mule实现SOA平台
  18. 第3章 深入理解JVM
  19. 3.1 Java代码的执行机制
  20. 3.1.1 Java源码编译机制
  21. 3.1.2 类加载机制
  22. 3.1.3 类执行机制
  23. 3.2 JVM内存管理
  24. 3.2.1 内存空间
  25. 3.2.2 内存分配
  26. 3.2.3 内存回收
  27. 3.2.4 JVM内存状况查看方法和分析工具
  28. 3.3 JVM线程资源同步及交互机制
  29. 3.3.1 线程资源同步机制
  30. 3.3.2 线程交互机制
  31. 3.3.3 线程状态及分析
  32. 第4章 分布式Java应用与Sun JDK类库
  33. 4.1 集合包
  34. 4.1.1 ArrayList
  35. 4.1.2 LinkedList
  36. 4.1.3 Vector
  37. 4.1.4 Stack
  38. 4.1.5 HashSet
  39. 4.1.6 TreeSet
  40. 4.1.7 HashMap
  41. 4.1.8 TreeMap
  42. 4.1.9 性能测试
  43. 4.1.10 小结
  44. 4.2 并发包(java.util.concurrent)
  45. 4.2.1 ConcurrentHashMap
  46. 4.2.2 CopyOnWriteArrayList
  47. 4.2.3 CopyOnWriteArraySet
  48. 4.2.4 ArrayBlockingQueue
  49. 4.2.5 AtomicInteger
  50. 4.2.6 ThreadPoolExecutor
  51. 4.2.7 Executors
  52. 4.2.8 FutureTask
  53. 4.2.9 Semaphore
  54. 4.2.10 CountDownLatch
  55. 4.2.11 CyclicBarrier
  56. 4.2.12 ReentrantLock
  57. 4.2.13 Condition
  58. 4.2.14 ReentrantReadWriteLock
  59. 4.3 序列化/反序列化
  60. 4.3.1 序列化
  61. 4.3.2 反序列化
  62. 第5章 性能调优
  63. 5.1 寻找性能瓶颈
  64. 5.1.1 CPU消耗分析
  65. 5.1.2 文件IO消耗分析
  66. 5.1.3 网络IO消耗分析
  67. 5.1.4 内存消耗分析
  68. 5.1.5 程序执行慢原因分析
  69. 5.2 调优
  70. 5.2.1 JVM调优
  71. 5.2.2 程序调优
  72. 5.2.3 对于资源消耗不多,但程序执行慢的情况
  73. 第6章 构建高可用的系统
  74. 6.1 避免系统中出现单点
  75. 6.1.1 负载均衡技术
  76. 6.1.2 热备
  77. 6.2 提高应用自身的可用性
  78. 6.2.1 尽可能地避免故障
  79. 6.2.2 及时发现故障
  80. 6.2.3 及时处理故障
  81. 6.2.4 访问量及数据量不断上涨的应对策略
  82. 第7章 构建可伸缩的系统
  83. 7.1 垂直伸缩
  84. 7.1.1 支撑高访问量
  85. 7.1.2 支撑大数据量
  86. 7.1.3 提升计算能力
  87. 7.2 水平伸缩
  88. 7.2.1 支撑高访问量
  89. 7.2.2 支撑大数据量
  90. 7.2.3 提升计算能力
  91. 已是悬崖百丈冰,犹有花枝俏—— 美编寄语
  92. 过去了是快乐,过不去是折磨—— 编辑手记

评论

载入中

热门划线

  1. SOA全称是面向服务架构,它强调系统之间以标准的服务方式进行交互,各系统可采用不同的语言、不同的框架来实现,交互则全部通过服务的方式进行。7 人
  2. ,多播协议的传输方式是一份数据在网络上进行传输,而不是由发送者给每个接收者都传一份数据,这样,网络的流量就大幅度下降了。6 人
  3. 大型应用通常会拆分为多个子系统来实现,对于Java来说,这些子系统可能部署在同一台机器的多个不同的JVM中,也可能部署在不同的机器上,但这些子系统又不是完全独立的,要相互通信来共同实现业务功能,对于此类Java应用,我们称之为分布式Java应用。4 人
  4. 一连接一线程4 人
  5. 新生代设置过大会带来两个典型的现象,一是旧生代变小了,有可能导致Full GC频繁执行;二是minor GC的耗时大幅度增加。4 人
  6. BIO就是当发起IO的读或写操作时,均为阻塞方式,只有当程序读到了流或将流写入操作系统后,才会释放资源3 人
  7. NIO是基于事件驱动思想 的,实现上通常采用Reactor模式3 人
  8. TCP/IP+NIO方式结合一定的改造在客户端能够带来更高的性能,在服务器端能支撑更高的连接数。3 人
  9. 综上所述,对于一个大型应用中的SOA平台,至少应包含以下几点功能:1)统一的服务交互方式,并可实现和现有应用的无缝集成;2)提供调试/跟踪的支持;3)依赖管理;4)高性能及高可用。3 人
  10. http://blog.zhenghui.org/2 人

喜欢这本书的人也喜欢