如果想看更多技術好書,可以關註微信公眾號【程式員書單】作者黃小斜,目前是阿裡Java工程師,業餘時間廣泛讀書,在公眾號里除了分享程式員必讀的技術書籍之外,也會推薦很多關於個人成長、投資理財等方面的書籍。你煩惱的每個問題,書中都有答案。 在這裡,我們將為你推薦幫助程式員以及互聯網從業者自我提升的各 ...
如果想看更多技術好書,可以關註微信公眾號【程式員書單】作者黃小斜,目前是阿裡Java工程師,業餘時間廣泛讀書,在公眾號里除了分享程式員必讀的技術書籍之外,也會推薦很多關於個人成長、投資理財等方面的書籍。你煩惱的每個問題,書中都有答案。
在這裡,我們將為你推薦幫助程式員以及互聯網從業者自我提升的各類好書、優質學習資源和工具,每周pick精品書單,解讀經典書籍。
Java工程師往往容易忽視的一塊知識點,其實就是Java網路編程,為什麼呢,因為如果我想寫一個Java Web項目,我只要用SSM就可以輕鬆搞定,寫好我們的controller、service和dao就可以了,也就是只需要關心業務邏輯,不需要關心前端請求的路由、甚至是後端的負載均衡和網路請求處理,因為這些東西很多時候都被Nginx和Tomcat給吃掉了,Nginx幫我們做好了負載均衡,Tomcat則幫我們完成TCP連接的建立,HTTP請求的處理,把所有複雜的技術細節都給屏蔽了。
不過隨著技術發展和更迭,大公司對於人才的要求也越來越高,對於高併發服務端編程能力的要求也在提高,比如在直播、實時通訊、游戲服務端開發等技術領域,通信協議和網路編程就成為了很重要的一個技術課題,相應的在Java領域,我們就必須要瞭解NIO、Linux epoll以及Netty等和網路通信相關的技術。如果你想做基礎技術研發,比如消息隊列、RPC框架的研發,那麼網路編程也是必備的基礎能力。
那麼今天我們就藉此機會,來介紹幾本關於Java網路編程方面的優質書籍,以幫助大家更好地掌握這方面的知識,我們將從Java Web出發,依次介紹NIO網路編程、Tomcat的設計原理,以及Netty這類通信編程框架領域的權威書籍。
消息隊列系列書單
分散式消息中間件實踐
消息中間件是分散式系統中的重要組件,在實際工作中常用消息中間件進行系統間數據交換,從而解決應用解耦、非同步消息、流量削峰等問題,實現高性能、高可用、可伸縮和最終一致性架構。
目前市面上可供選擇的消息中間件有RabbitMQ、ActiveMQ、Kafka、RocketMQ、ZeroMQ、MetaMQ等。本書結合作者近年來在實際項目中使用消息中間件的經歷和踩過的一些坑總結整理而成,主要介紹消息中間件使用的背景、基本概念,以及常用的四種消息中間件產品在各個業務場景中的使用案例。
作為案例介紹,雖然不能對各種消息中間件產品的所有特性做詳細說明,但是希望讀者可以通過每章中的案例討論和實踐建議得到啟發,為在實際工作中進行產品選型、業務場景方案制定、性能調整等提供思路。
作者介紹
蘇寧軟體技術有限公司資深工程師,主要負責系統架構設計,消息中間件開發等工作。有多年的大型網站開發經驗及消息中間件應用經驗。
RabbitMQ實戰指南
《RabbitMQ實戰指南》從消息中間件的概念和RabbitMQ的歷史切入,主要闡述RabbitMQ的安裝、使用、配置、管理、運維、原理、擴展等方面的細節。《RabbitMQ實戰指南》大致可以分為基礎篇、進階篇和高階篇三個部分。
基礎篇首先介紹RabbitMQ的基本安裝及使用方式,方便零基礎的讀者以最舒適的方式融入到RabbitMQ之中。其次介紹RabbitMQ的基本概念,包括生產者、消費者、交換器、隊列、綁定等。之後通過Java語言講述了客戶端如何與RabbitMQ建立(關閉)連接、聲明(刪除)交換器、隊列、綁定關係,以及如何發送和消費消息等。
進階篇講述RabbitMQ的 TTL、死信、延遲隊列、優先順序隊列、RPC、消息持久化、生產端和消費端的消息確認機制等內容,以期讀者能夠掌握RabbitMQ的使用精髓。《RabbitMQ實戰指南》中間篇幅主要從RabbitMQ 的管理、配置、運維這三個角度來為讀者提供幫助文檔及解決問題的思路。高階篇主要闡述RabbitMQ的存儲機制、流控及鏡像隊列的原理,深入地講述RabbitMQ的一些實現細節,便於讀者加深對RabbitMQ的理解。
《RabbitMQ實戰指南》還涉及網路分區的概念,此內容可稱為魔鬼篇,需要掌握前面的所有內容才可理解其中的門道。《RabbitMQ實戰指南》最後講述的是RabbitMQ的一些擴展內容及附錄,供讀者參考之用。
作者簡介
電腦碩士畢業,在互聯網公司擔任高級開發工程師,從事消息中間件的研究及開發,主要包括RabbitMQ和Kafka。
**RocketMQ實戰與原理解析 **
本書由雲棲社區官方出品。
作者是阿裡資深數據專家,對RocketMQ有深入的研究,並有大量的實踐經驗。在寫這本書之前,作者不僅系統、深入地閱讀了RocketMQ的源代碼,而且還向RocketMQ的官方開發團隊深入瞭解了它的諸多設計細節。
作者結合自己多年使用RocketMQ的經驗,從開發和運維兩個維度,給出了大部分場景下的優秀實踐,能幫助讀者在學會使用和用好RocketMQ的同時,儘量少“踩坑”。同時,本書也結合源碼分析了分散式消息隊列的原理,使讀者可以在複雜業務場景下定製有特殊功能的消息隊列。
作者簡介
楊開元,阿裡巴巴數據專家,畢業於北京大學,有10年IT行業研發經驗。對RocketMQ有深入的研究,是RocketMQ源碼貢獻者。曾就職於甲骨文和獵豹移動,專註於大數據和實時計算。在大量的工作實踐中,對MySQL、J2EE、JVM、Spring、Hadoop、Kafka、Storm、Flink都有深入研究。喜歡剖析源碼,分析原理,為開源項目貢獻代碼。
《Kafka入門與實踐》
《Kafka入門與實踐》以Kafka 0.10.1.1版本以基礎,對Kafka的基本組件的實現細節及其基本應用進行了詳細介紹,同時,通過對Kafka與當前大數據主流框架整合應用案例的講解,進一步展現了Kafka在實際業務中的作用和地位。本書共10章,按照從抽象到具體、從點到線再到面的學習思維模式,由淺入深,理論與實踐相結合,對Kafka進行了分析講解。
《Kafka入門與實踐》中的大量實例來源於作者在實際工作中的實踐,具有現實指導意義。相信讀者閱讀完本書之後,能夠全面掌握Kafka的基本實現原理及其基本操作,能夠根據書中的案例舉一反三,解決實際工作和學習中的問題。此外,在閱讀本書時,讀者可以根據本書對Kafka理論的分析,再結合Kafka源碼進行定位學習,瞭解Kafka的設計和思想以及更多的編碼技巧。
《Kafka入門與實踐》適合應用Kafka的專業技術人員閱讀,包括但不限於大數據相關應用的開發者、運維者和愛好者,也適合高等院校、培訓結構相關專業的師生使用。
作者簡介
牟大恩,武漢大學碩士,曾先後在網易杭州研究院、掌門科技、優酷土豆集團擔任高級開發工程師和資深開發工程師職務,目前就職於海通證券總部。有多年的Java開發及系統設計經驗,專註於互聯網金融及大數據應用相關領域。