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