天天看點

11 萬字的位元組碼程式設計系列合集放送(ASM、Javassist、Byte-buddy、Javaagent)

11 萬字的位元組碼程式設計系列合集放送(ASM、Javassist、Byte-buddy、Javaagent)

作者:小傅哥

部落格:https://bugstack.cn -

彙總系列原創專題文章

沉澱、分享、成長,讓自己和他人都能有所收獲!????

讓人怪不好意思的,說是出書有點膨脹????,畢竟這不是走出版社的流程,選題、組稿、編著、審讀、加工到出版發行。

但全書共計107頁,11萬7千字,20個章節涵蓋三個位元組碼架構和JavaAgent使用并附帶整套案例源碼!

11 萬字的位元組碼程式設計系列合集放送(ASM、Javassist、Byte-buddy、Javaagent)

講道理,市面上以及網絡搜尋中都基本很少有成體系的關于位元組碼程式設計的知識,這主要由于大部分開發人員其實很少接觸這部分内容,包括;

ASM

Javassist

Byte-buddy

以及

JavaAgent

,沒有很大的市場也就沒有很多的資料。但大家其實已經從其他的架構或者中間件中使用到,就像你用到的;Cglib、混沌工程、非入侵的全鍊路監控以及你是否使用過

jetbrains-agent.jar

做了某項實驗?

11 萬字的位元組碼程式設計系列合集放送(ASM、Javassist、Byte-buddy、Javaagent)

是以這樣的技術棧一直都萦繞在你身邊,隻是你還沒有發現!當有一天面試問到了,那時你已經170斤工作五年。

蹭個車告訴你這個知識的重要性,阿裡雲的挑戰賽!

11 萬字的位元組碼程式設計系列合集放送(ASM、Javassist、Byte-buddy、Javaagent)

讀不在三更五鼓,功隻怕一曝十寒!

,不一定一本書中就能讀出個黃金屋,但腳下路的用什麼墊都是自己日積月累。

就這本書他出爐了

11 萬字的位元組碼程式設計系列合集放送(ASM、Javassist、Byte-buddy、Javaagent)

介紹

初識位元組碼程式設計是從使用非入侵的全鍊路監控開始,在這之前我所了解的如果需要監控系統的運作狀況,通常需要寫死埋點或者AOP的方式采集方法執行資訊;耗時、異常、出入參等來監控一個系統的運作健康度。而這樣的監控方式在大量的系統中去改造非常耗時且不好維護,更不要說去監控一個業務流程的調用鍊路。

在2010年的時候,谷歌釋出一篇名為《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》的論文,在文中介紹了谷歌生産環境中大規模分布式系統下的跟蹤系統

Dapper

的設計和使用經驗。

這樣的監控系統采用

Javaagent

與位元組碼操作架構結合使用,在應用系統加載時對需要監控的方法進行位元組碼增強也叫插樁。對方法處理後的結果就和你之前寫死類似,但這樣就可以減輕認為操作,同時可以對多個系統之間定義調用鍊路ID進行串聯業務流程關系。最終,極大減輕了監控成本也提高了線上問題的快速定位和處理。

這裡面監控系統核心知識也主要是

Javaagent

和位元組碼操作,在位元組碼操作中目前有三個比較常用的架構;

ASM

Javassist

Byte Buddy

,這幾個架構都能進行位元組碼操作,其中

ASM

更偏向于底層,需要了解位元組碼指令以及操作數棧等知識,最好學習過《Java虛拟機規範》等書籍,另外兩個架構是對

ASM

的封裝,提供更加進階的API去操作位元組碼。

在本書中

小傅哥

會分别講解這三種位元組碼架構的使用,以及最終與

Javagent

結合完成全鍊路監控的案例。通過這樣的學習讓你可以從有抓手的從案例開始,把枯燥的位元組碼程式設計融入場景,深化了解和實操應用。也能讓你忙于CRUD開發的同時提升自己的知識棧,拓展技術視野。也許不久以後這項技術也能為你帶來一些有價值的收獲!

作者

作者小傅哥多年從事一線網際網路 Java 開發,熱衷于對學習曆程做技術彙總,側重點更傾向編寫 Java 核心内容。旨在為大家提供一個清晰詳細的學習教程也幫助自己不斷沉澱。是以投入時間學習、整理、編寫相關的資料,如果我的文章或書籍能為您提供幫助,請給予支援(關注、點贊、分享)!

如何支援:

  • 關注公衆号:

    bugstack蟲洞棧

  • 收藏我部落格:

    bugstack.cn

  • 分享給您身邊的小夥伴
  • 還可以給我開源的項目點個星星???? 「

    CodeGuide | 程式員編碼指南

    」-

    https://github.com/fuzhengwei/CodeGuide/wiki

如果這些都做了!記得加我

微信(fustack)

,交個朋友!

下載下傳

内容包括;

  1. 小傅哥的

    《位元組碼程式設計》

  2. 一整套書中對應的源碼
    11 萬字的位元組碼程式設計系列合集放送(ASM、Javassist、Byte-buddy、Javaagent)

下載下傳方式;

  1. 打開外鍊分享連結下載下傳書籍: http://book.bugstack.cn/#s/51Es_z_Q
  2. 書中的源碼部分在公衆号:

    bugstack蟲洞棧

    ,回複

    源碼下載下傳

    即可擷取
  3. 如果連結失效關注公衆号:

    bugstack蟲洞棧

    ,回複PDF,擷取新的連結下載下傳
  4. 添加作者微信(fustack)擷取書籍和源碼,也友善做相關技術交流
  5. 公衆号使用者,直接點選下方閱讀原文下載下傳

由于網絡相容直接線上閱讀可能有字型錯位問題,請下載下傳閱讀,體驗更好!

收個尾

頭一次把系列文章寫成書,雖然免費釋出,但也可能在擷取書籍下載下傳以及學習過程中發現我寫錯字以及寫錯某個名稱

想噴我

????,如果你有此沖動!請添加小傅哥微信(

公衆号:bugstack蟲洞棧擷取

),我會用我的技術魅力和爆炸人品感化你,并修改我的書籍内容,????記錄你的功績到:https://github.com/fuzhengwei/CodeGuide/wiki

如果你在閱讀本書的過程中有些地方不是很容易了解,不要擔心一定作者沒有描述的更加清楚。很多知識或者系統建設并不難,隻是有時候被描述的麻煩了。是以我也非常願意與你一起去學習這部分知識,在讨論中不斷把問題梳理的更加清晰,用更易懂的方式剖析問題的本質。

彩蛋

推薦閱讀

  • 這麼折騰學習畢業進大廠不是問題

  • 工作兩年履歷寫的差教你優化

  • 講一下我自己的學習路線,給你一些參考

  • 基于Springboot的中間件開發,了解一下

繼續閱讀