天天看點

還沒使用過消息隊列?這一份書單值得你好好看看!

在這裡,我們将為你推薦幫助程式員以及網際網路從業者自我提升的各類好書、優質學習資源和工具,每周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開發及系統設計經驗,專注于網際網路金融及大資料應用相關領域。