當前位置:編程學習大全網 - 源碼下載 - 從0開始手擼壹個高性能rpc框架

從0開始手擼壹個高性能rpc框架

相信社區上現在還有不少人對前後端交互或者遠程系統間調用的理解還是停留在 http 調用的層面。以 http 協議的形式發起的調用,其實就是壹種 rpc 調用。在分布式/微服務環境中,前端/客戶端發起的壹個調用,可能會經過後端數十個服務,所以每個服務之間的通信效率就顯得非常重要。http1.x 是文本協議,文本協議的傳輸效率比較低下,這必然會導致整個鏈路的耗時成本增加。所以如何解決分布式/微服務環境中的服務間的通信問題,是我們通向壹個資深工程師的必經之路。這就是 rpc 框架設計的初衷。

壹提到 rpc ,大家可能就條件反射地想到 java 的 dubbo 和 google 的 grpc。但是假如把對 dubbo 和 grpc 了解能到 50% 以上的人篩選壹遍,可能就十不足壹。為什麽呢?

因為絕大多數開發者僅僅是框架的使用者,很少會去看框架的源碼。就算去看源碼,可能也會非常吃力、雲裏霧裏。原因有二:

我們的 gorpc 框架就 提供給了大家壹個各項功能完整的,剛實現從 0 到 1這個過程的框架。並且壹步步給大家解析了每個功能的具體實現思路和實現過程,這是非常難得的

本課程主要從壹個開發者的角度,從技術選型到編碼實現,從 0 到 1去實現壹款高性能 rpc 框架,主要技術點包括 client 和 server 通訊、超時機制實現、協議的制定、傳輸層 transport 實現、編解碼、序列化、連接池、服務發現、負載均衡、攔截器、分布式鏈路追蹤、認證鑒權、組件化、插件體系、框架性能優化等。

課程特色

框架特色

我們知道,其實世面上有非常多的 rpc 框架了。java 有阿裏的 dubbo、微博的 motan 等,go 有 grpc、rpcx、go-micro 等。那 gorpc 框架跟這些框架有什麽優勢呢?個人進行總結壹下,

所以如果我們自己去實現壹款框架,我們希望這款框架的核心特點是: 簡單易用、高性能、可插拔

框架架構如下:

具體特性如下:

章節預覽思維導圖如下:

為什麽使用 go 實現

相比於 java 和 c++ 的厚重性和壹些 歷史 包袱而言,go 更加簡潔、優雅。並且 go 天然支持高並發。這些特點使得 go 目前得到越來越廣泛的關註和使用。我們使用 go 實現是因為 go 的這些語言特性,同時也因為 go 實現的框架源碼的非常易讀,有助於學習和成長。

  • 上一篇:java實現矩陣相加、相乘,判斷是否上(下)三角矩陣、對稱矩陣、相等的算法
  • 下一篇:emwin中checkbox怎麽用
  • copyright 2024編程學習大全網