善用分布式追蹤系統,幫你找出程式的效能瓶頸與問題影響範圍(Jaeger with OpenTelemetry Node.js)
大型專案免不了要多個團隊合作,而每個團隊熟悉的程式語言可能不同,所部署的服務也可能分佈在多台 Server 上面。在這樣複雜的架構下,如果系統的某個服務出問題,又或是遇到效能瓶頸;即便有 log 紀錄,但在上下依賴不清楚的狀態下,工程師需要花不少時間來釐清問題原因。
SERIES ・ 系列
Kafka & Tracing
認識 Kafka 分散式訊息串流平台,用 Node.js 實作,再透過 Jaeger 與 OpenTelemetry 追蹤效能瓶頸。
共 4 篇文章
大型專案免不了要多個團隊合作,而每個團隊熟悉的程式語言可能不同,所部署的服務也可能分佈在多台 Server 上面。在這樣複雜的架構下,如果系統的某個服務出問題,又或是遇到效能瓶頸;即便有 log 紀錄,但在上下依賴不清楚的狀態下,工程師需要花不少時間來釐清問題原因。
如果推出的 Web 系統受到市場親睞,那隨著使用者成長,勢必會更高頻率的呼叫 api 與存取資料庫;假使我們沒有設計任何的緩衝機制,那資料庫不堪重負也只是時間問題。 而且隨著公司規模的擴張,接下來可能會有專門的團隊來分析使用者行為,公司高層與投資人會想看具體的業務狀況…
本篇文章將會帶大家一步步建立 Node.js 專案 & Kafka 環境,透過具體實踐來了解 Kafka 的運行邏輯。
我們可以把 Kafka 當成傳遞消息的「轉運站」,但有時就算 Consumer 順利拿到 Producer 的消息,我們也無法保證接下來的運作都符合預期。