**SkyWalking** 是一個開源 **APM** 系統,包括針對 **Cloud Native** 體系結構中的分佈式系統的監視、跟蹤、診斷功能。核心功能以下:git
- 服務、服務實例、端點指標分析數據庫
- 根本緣由分析,在運行時分析代碼瀏覽器
- 服務拓撲圖分析安全
- 服務、服務實例和端點依賴性分析性能優化
- 檢測到慢速服務和端點服務器
- 性能優化微信
- 分佈式跟蹤和上下文傳播架構
- 數據庫訪問指標。檢測慢速數據庫訪問語句(包括 **SQL** 語句)併發
- 報警框架
**SkyWalking** 目前是 **Apache** 頂級項目,做爲這麼優秀的開源項目,它的架構設計理念確定會有不少值得咱們借鑑。
消息中間件選型生態方法論
中間件是爲應用提供通用服務和功能的軟件。數據管理、應用服務、消息傳遞、身份驗證和 **API** 管理一般都要經過中間件。中間件能夠幫助開發人員更有效地構建應用。它就如同是應用、數據與用戶之間的紐帶。
對於具備多雲和容器化環境的企業而言,中間件能夠助您大規模、經濟高效地開發和運行應用。
中間件是介於操做系統和在其上運行的應用程序之間的軟件。中間件實質上充當隱藏轉換層,實現了分佈式應用程序的通訊和數據管理。它有時被稱爲管道,由於它將兩個應用程序鏈接在一塊兒,使數據和數據庫可在「管道」間輕鬆傳遞。經過中間件,用戶可執行不少請求,例如在 **Web** 瀏覽器上提交表單,或者容許 **Web** 服務器基於用戶的配置文件返回動態網頁。
常見的中間件示例包括數據庫中間件、應用程序服務器中間件、面向消息的中間件、**Web** 中間件和事務處理監視器。每一個程序一般都會提供消息傳遞服務,讓不一樣的應用程序可以使用簡單對象訪問協議(**SOAP**)、**Web** 服務、表述性狀態轉移(**REST**)和 **JavaScript** 對象表示法(**JSON**)等消息傳遞框架進行通訊。雖然全部中間件都執行通訊功能,但公司選用的類型將取決於要使用的服務以及須要傳達的信息類型。這可包括安全身份認證、事務管理、消息隊列、應用程序服務器、**Web** 服務器和目錄。中間件還可用於實時發生的操做的分佈式處理,而不是來回發送數據。
這裏我要重點分析的是消息中間件,基於消息的中間件能夠說是咱們平常開發中常常接觸和使用的,這個屬於常規技術棧。
消息中間件,那麼我在這裏也不會一一對比,由於網上對比的文章太多了,現階段主流的使用頻率很是高的就兩款,**Kafka**和**RocketMQ**。
簡單說明下場景,比較精闢。**Kafka**適用於高吞吐量,而後可以容忍一部分消息丟失,好比日誌收集場景,**RocketMQ**使用於高可靠性和必定的吞吐量的業務場景,好比金融支付場景。
中間件選型的方法論其實很簡單,就是要從業務場景和中間件功能的匹配度程度以及維護這麼一套系統的成原本考慮。從長遠的角度就是擴展和成本,從短時間角度也是收益和成本。
咱們一般從技術的角度,好比高可用、高性能、高併發以及高吞吐量連判斷一個消息中間件,可是其實任何一個可以開源出來的中間件,其實都不差,重點是在咱們怎麼使用,並可以吃透原理,這樣才能真正發揮它的價值,我見過好多團隊在使用開源的消息中間件的時候常常吐槽,說很爛,很很差用,可是你要想一想,若是是你本身寫,花半年的時間寫出來的消息中間件可能還不如人家的,也有可能處處都是 **bug**,由於你的沒有更多的業務場景來驗證,開源的消息中間件至少已經被社區的人植入了更多更普遍的業務場景。
選型消息中間件的獨門祕籍我這邊推薦是:借力打力,解決當下,着眼將來,考慮生態。
若是想了解更多文章詳情,請關注做者的原創文章:
SkyWalking 分佈式鏈路追蹤:最新 Kafka 通訊模型設計
https://gitbook.cn/new/gitchat/activity/5f2d5e65ba074467ee7ac393
往期文章精選:
分佈式鏈路追蹤 Skywalking:插件化和模塊化架構設計
分佈式鏈路追蹤Skywalking Skywalking 存儲客戶端設計
源碼分析-分佈式鏈路追蹤:Skywalking存儲插件能力-elasticsearch
遊俠--架構師玄學之路的獨立運營者,也許文章更新頻率沒有那些團隊運營者高,但每篇文章都是做者的心血,歡迎支持原創。
本文分享自微信公衆號 - 架構師玄學之路(andy_aty)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。