动态

列表
创建 时间

聊聊如何通過APT+AST來實現AOP功能

前言 如果有使用過spring aop功能的小夥伴,應該都會知道spring aop主要是通過動態代理在運行時,對業務進行切面攔截操作。今天我們就來實現一下如何通過APT+AST在編譯期時實現AOP功能。不過在此之前先科普一下APT和AST相關內容 APT(註解處理器) apt可以查看我之前寫過的文章聊聊如何運用JAVA註解處理器(APT) AST(抽象語法樹) 什麼是AST 抽象語法樹(Abst

创建 时间

Kafka 租户隔離全攻略:五種生產級方案實戰與選型指南

背景:當Kafka遇上多租户場景 最近公司業務線面臨一個棘手問題:核心消息隊列Kafka需要支持多租户數據隔離,但Kafka原生並未提供開箱即用的租户機制。想象一下:多個業務線數據混雜在同一個集羣中,既可能導致資源搶佔,又存在數據泄露風險。如何在不重構架構的前提下實現高效隔離?本文將從實戰出發,拆解五種主流方案的技術細節與落地權衡。 五種租户隔離方案深度解析 方案一:物理集羣隔離——最徹底的"物理

创建 时间

聊聊在springcloud gateway如何獲取請求體

前言 在我們擴展scg時,獲取requestbody也是一個挺常見的需求了,比如記錄日誌,我們要獲取請求體裏面的內容。在HTTP協議中,服務器接收到客户端的請求時,請求體(RequestBody)通常是以流的形式傳輸的。這個流在設計上是隻讀且不可重複讀取的。即request body只能讀取一次,但我們很多時候是更希望這個requestbody可以被多次讀取,那我們今天就來聊下這個話題 實現思路

创建 时间

記一次springcloud gateway記錄日誌響應結果亂碼問題

前言 最近團隊的網關日誌發現有不少響應結果記錄,出現形如下的亂碼 �V*.I,IU�JK�)N�Q�M-.NL�^�m�?��(�釷/�,}�����]O7L|���ŲƧ�MϦnP�Q*K�)*�+���QJ-*�/r�O���{�@8� �� 一開始感覺是不是中文亂碼,但是後面發現有些日誌不是中文,也是亂碼,而有些記錄的日誌又能正常顯示。於是搜索了一圈,在https://b

创建 时间

熬夜三天!SpringCloud Gateway 動態路由失效,背後黑手竟是它……

在微服務體系裏,SpringCloud Gateway 作為流量調度的核心組件,其路由配置的穩定性,直接關係到整個系統能否正常運轉。之前,我們團隊負責的項目藉助 Apollo 配置中心,構建起一套動態路由機制。代碼源自官方範例(apollo-use-cases),長期穩定運行,為業務發展築牢了技術根基。 然而,平靜的工作節奏被一次突發狀況打破。新配置到 Apollo 的路由,彷彿被施了魔法,

创建 时间

超詳細!Spring Boot項目結合Maven Profile實現多環境切換,輕鬆搞定開發部署難題

在當今的軟件開發中,一個項目往往需要在不同的環境中運行,如開發、測試和生產環境。每個環境都有其獨特的配置需求,如何高效地管理這些配置,讓項目在不同環境中順利運行,成為了開發者們必須面對的問題。Spring Boot 和 Maven 作為 Java 開發中非常流行的框架和構建工具,為我們提供了強大的解決方案,那就是 Spring Boot Profile 和 Maven Profile。本文將深入探

创建 时间

Spring Boot Map 依賴注入血坑實錄:為什麼我的 Map 總是少了一半數據?

Spring Boot Map依賴注入血坑實錄:為什麼我的Map總是少了一半數據? 凌晨三點改BUG:一個Map引發的「玄學」問題 團隊在擴展Spring Kafka租户功能時,遇到了一個詭異的現象: 注入的MapString, KafkaTemplate始終無法獲取完整的實例,明明配置了多個模板,打印出來卻只有默認的一個! 當時以為是Bean加載順序問題,折騰了兩天debug,甚至被