博客 / 列表

crossoverJie - 日誌架構演進:從集中式到分佈式的Kubernetes日誌策略

當我們沒有使用雲原生方案部署應用時採用的日誌方案往往是 ELK 技術棧。 這套技術方案比較成熟,穩定性也很高,所以幾乎成為了當時的標配。 可是隨着我們使用 kubernetes 步入雲原生的時代後, kubernetes 把以往的操作系統上的許多底層都屏蔽,再由他提供了一些標準接口。 同時在 kubernetes 中的日誌來源也比傳統虛擬機多,比如可能有容器、kubernetes 自身的事

kubernetes , 日誌

crossoverJie - 深入理解單元測試:技巧與最佳實踐

之前分享過如何快速上手開源項目以及如何在開源項目裏做集成測試,但還沒有講過具體的實操。 今天來詳細講講如何寫單元測試。 🤔什麼情況下需要單元測試 這個大家應該是有共識的,對於一些功能單一、核心邏輯、同時變化不頻繁的公開函數才有必要做單元測試。 對於業務複雜、鏈路繁瑣但也是核心流程的功能通常建議做 e2e 測試,這樣可以保證最終測試結果的一致性。 💀具體案例 我們都知道單測的主要目的是模擬執行你

單元測試

crossoverJie - 徹底理解閉包實現原理

前言 閉包對於一個長期寫 Java 的開發者來説估計鮮有耳聞,我在寫 Python 和 Go 之前也是沒怎麼了解,光這名字感覺就有點"神秘莫測",這篇文章的主要目的就是從編譯器的角度來分析閉包,徹底搞懂閉包的實現原理。 函數一等公民 一門語言在實現閉包之前首先要具有的特性就是:First class function 函數是第一公民。 簡單來説就是函數可以像一個普通的值一樣在函數中傳遞,也能對變量

閉包 , go , 編譯原理

crossoverJie - OpenTelemetry 實戰:gRPC 監控的實現原理

前言 最近在給 opentelemetry-java-instrumentation 提交了一個 PR,是關於給 gRPC 新增四個 metrics: rpc.client.request.size: 客户端請求包大小 rpc.client.response.size:客户端收到的響應包大小 rpc.server.request.size:服務端收到的請求包大小 rpc.server.

grpc , 監控

crossoverJie - OpenTelemetry agent 對 Spring Boot 應用的影響:一次 SPI 失效的

背景 前段時間公司領導讓我排查一個關於在 JDK21 環境中使用 Spring Boot 配合一個 JDK18 新增的一個 SPI(java.net.spi.InetAddressResolverProvider) 不生效的問題。 但這個不生效的前置條件有點多: JDK 的版本得在 18+ SpringBoot3.x 還在額外再配合使用 -javaagent:opentelemetry-j

agent , JDK , springboot

crossoverJie - 消失的這幾個月我都幹了什麼

前言 消失兩個多月後我胡漢三又回來了,比較遺憾的是這並不是一篇技術文,有興趣的朋友就當做故事看吧。 所以這其實是一份年終總結 其實這段期間一直有朋友在問我咋不接着更新公眾號了?甚至一點消息都沒了。 真不是不更,主要有以下幾個原因: 我對這個號的定位是【原創技術】博主,大家應該也知道,技術號是一種非常垂直的領域,能寫的東西也就那麼多;以我個人的工作閲歷其實已經快被榨乾了。 平時大家應該也能看得出,不

2019總結