框架是什麼?
框架,英文名稱framework,可以看作一種腳手架或者是一種標準化模版
框架中該有的元件都已經設定好,方便幹活,減少重複工作,同時專案的風格和目錄一致,看起來也更加方便
在公司中使用統一的框架,接手起來更加方便,維護起來也更加方便,如果使用同一個框架,發現了漏洞,更新一個框架即可。同時很多業務中存在重複程式碼,像是日誌、監控系統,使用統一框架,負責開發的程式設計師不需要考慮其他,只管自己業務程式碼的開發,這樣自己寫的程式碼量減少,不容易出現問題。
在開發的主流語言中,Java應用是最廣泛的,它有一個統一的框架Spring,全世界都在用,很多問題前輩可能都遇到過,相應的技術部落格也比較完善,這是它獨特的優勢。
golang開發常用的框架
golang是一門比較新的語言,2009年正式發布,作為一門新興的語言,沒有像Java一樣形成一個大一統的框架,很多大廠都有自己的框架,還有一些開源團隊維護自己的框架。
這樣在大廠中會有一些崗位是做基礎架構的,專門為公司開發新的適用於公司業務的框架,開發框架也並不簡單,需要根據自己公司的業務需求進行開發,還要考慮跟公司其他業務的連通性,公司內部私有協議的適配性,還有框架的使用友好性、穩定性、安全性等等。
我們在學習的時候更多的是要學習框架實現的思想,不要只單純學怎麼使用,要學會自己造輪子->造汽車。
微服務框架基本元件
-
日誌(一個框架能支援不同的日誌配置)
-
配置中心(在配置中心進行微服務配置的設定,不用一個個單獨設定)
-
資料庫(支援資料庫的互動)
-
訊息佇列(各種訊息佇列,Kafka、RabbitMQ等)
-
metrics(指標監控)
-
tracing(鏈路追蹤,單個請求完整的生命週期,找出效能瓶頸之類的)
-
服務註冊發現
-
依賴注入
-
RPC框架(遠端過程呼叫,微服務之間資料的互動處理)
-
熔斷和限流(維持微服務的執行,防止崩潰)
-
……
開源社群常用的框架
-
- go微服務套件庫,簡單的元件庫,能用來實現微服務專案
-
Go-micro
- 比較早的go微服務框架,可能不相容新的更新
-
Go-kratos
- B站開源的框架,可以自己選擇元件,也可以使用自己的
-
Kitex
- 位元組開源,自定義netpoll,對使用者要求比較高,效能高
-
Go-zero
- 好未來開源的,一站式微服務框架(之前吃飯路過好未來,下班好像挺早的)