本書是高等教育出版社與達內時代科技集團(以下簡稱達內集團)聯合出品的程序設計類新形態(tài)一體化教材,由達內一線授課講師根據自己多年的授課經驗結合課堂真實案例編纂。本書以互聯網企業(yè)實際用人的要求為導向,總結近幾年國家示范性高職院校軟件技術專業(yè)教學改革及達內集團在IT培訓行業(yè)十多年的經驗編寫而成。
分布式編程在教學體系中定位為大數據課程的前置課程。本書共6章,分別是Socket通信、NIO、并發(fā)訪問及優(yōu)化、序列化與反序列化、初識Zookeeper、Zookeeper企業(yè)級開發(fā)。每一章節(jié)的內容都包括基礎知識論述與案例講解相結合的方式,是達內一線優(yōu)秀講師講課模式的再現。同時每章還包括本章重點、參考源代碼、課程目標及章節(jié)小結等模塊。
本書可以作為應用高等職業(yè)院校軟件技術專業(yè)Java大數據課程的配套教材,也可作為Java大數據愛好者的入門教材和參考用書。
第1章Socket通信
本章重點
本章目標
1.1網絡模型
1.1.1OSI參考模型
1.1.2TCP/IP參考模型
1.2傳輸協議
1.2.1UDP
1.2.2TCP
1.3Socket通信
1.3.1基于UDP的Socket通信
1.3.2基于TCP的Socket通信
1.3.3多線程聊天室
1.4進程和線程
1.4.1進程
1.4.2為什么引入進程模型
1.4.3線程
1.4.4線程的調度算法
本章小結
第2章NIO
本章重點
本章目標
2.1BIO
2.1.1什么是BIO
2.1.2BIO的局限性
2.1.3BIO的應用場景
2.2NIO
2.2.1NIO概述
2.2.2應用場景
2.3緩沖區(qū)
2.4通道
2.4.1服務器端通道
2.4.2客戶端通道
2.4.3通道讀/寫數據
2.4.4數據報通道
2.4.5文件通道
2.5選擇器
2.5.1選擇器的設計思路
2.5.2選擇器的常用方法
2.5.3NIO服務器端和客戶端的實現
2.6TCP粘包和拆包
2.6.1粘包和拆包
2.6.2何時需要考慮粘包問題
2.6.3拆包策略
2.7AIO簡介
本章小結
第3章并發(fā)訪問及優(yōu)化
本章重點
本章目標
3.1阻塞式隊列(BlockingQueue)
3.1.1生產者消費者模型
3.1.2ArrayBlockingQueue
3.2并發(fā)映射
3.2.1ConcurrentMap
3.2.2ConcurrentNavigableMap
3.3閉鎖和柵欄
3.3.1CountDownLatch
3.3.2CyclicBarrier
3.4交換機和信號量
3.4.1Exchanger
3.4.2Semaphore
3.5線程池
3.5.1線程池簡介
3.5.2ExecutorService
3.5.3Executors
3.6鎖
3.6.1Lock
3.6.2ReadWriteLock
3.6.3原子性
本章小結
第4章序列化與反序列化
本章重點
本章目標
4.1序列化與反序列化概述
4.1.1序列化
4.1.2反序列化
4.1.3serialVersionUID
4.1.4transient
4.2序列化框架
4.2.1ApacheAvro簡介
4.2.2Avro支持的數據類型
4.2.3Avro的.avsc文件
4.2.4Avro序列化
4.3RPC
4.3.1RPC簡介
4.3.2AvroRPC
本章小結
第5章初識Zookeeper
本章重點
本章目標
5.1分布式系統(tǒng)
5.1.1何謂分布式
5.1.2分布式環(huán)境的問題
5.2Zookeeper
5.2.1Zookeeper概述
5.2.2單機版Zookeeper的安裝配置
5.2.3Zookeeper的數據模型
5.2.4Zookeeper的常用指令
5.2.5Zookeeper結點類型
5.2.6Zookeeper常用API
5.3Zookeeper集群
5.3.1搭建Zookeeper集群
5.3.2Zookeeper服務器角色
5.3.3leader選舉
5.3.4原子廣播
5.3.5observer觀察者
5.3.6配置observer角色
5.4Zookeeper集群命令
5.4.1Linuxnc安裝
5.4.2Zookeeper常用集群命令
5.4.3Zookeeper的應用場景
本章小結
第6章Zookeeper企業(yè)級開發(fā)
本章重點
本章目標
6.1項目概述
6.1.1Zebra項目簡介
6.1.2Zebra項目整體架構
6.2Zebra項目搭建
6.2.1搭建TarenaZebra-contract工程
6.2.2搭建TarenaZebra-engine1-01工程
6.2.3搭建TarenaZebra-engine2工程
6.2.4搭建TarenaZebra-jobtracker工程
6.3Zebra項目編碼
6.3.1創(chuàng)建jobtracker工程的FileHandle類
6.3.2創(chuàng)建jobtracker工程的FileToBlock類
6.3.3實現一級引擎RPC服務器
6.3.4jobtracker與一級引擎遠程交互
6.3.5一級引擎處理日志文件
6.3.6實現二級引擎RPC服務器
6.3.7實現一級引擎RPC客戶端
6.3.8二級引擎實現數據合并
本章小結
參考文獻