@源碼分析

動態 列表
@jianxiangjie3rkv9

Sentinel進化指南:dashbaord改造,集羣流控,監控持久化

前言 我們的項目為了方便移植,所以選擇了阿里雲來進行部署,脱離的公司自己的技術能力平台。項目中使用sentinel做 限流,單原本的sentinel只有基於的內存存儲的單機限流攻擊,無法滿足線上軟件的要求。我們需要在sentinel的基礎上,改造dashboard完成如下能力。 接入Sentinel-Dashboard提供更靈活的限流配置管理和更直觀的查看系統資源的入口。 接入nacos 提

@wangdachui_5d9d33e8767fc

Nacos源碼分析-更新配置時服務端做了什麼

在 Nacos console 修改了配置以後,服務端底層怎麼存儲配置?客户端怎麼知道配置修改了?怎麼通知集羣其他節點?讓我來揭開它神秘的面紗。 服務端接收配置更新請求 在控制枱頁面更新一項配置,看看控制枱發送了什麼請求給服務端。 控制枱發送了一個 POST 請求:/nacos/v1/cs/configs,在官方 API指南 可以找到 API 定義。 我 Nacos 源碼是 2.* 版本

@hello_5adf4e51b4f3e

三次握手時服務端做了什麼

之前的幾篇文章我們介紹了linux中socket相關的系統調用,比如socket、linsten、accept等,這些系統調用更偏向於初始化、分配需要的資源。那麼在這些初始化結束後,tcp兩端進行建連操作時,服務端這邊做了什麼工作呢?點擊以下鏈接瞭解: 原文鏈接:聊聊Linux tcp/ip之建立連接時服務端幹了什麼-從syn-recv到established

hello_5adf4e51b4f3e 頭像

@hello_5adf4e51b4f3e

昵稱 斯達克

@jianghushinian

Go 源碼是如何解決測試代碼循環依賴問題的?

公眾號首發地址:https://mp.weixin.qq.com/s/j5vKNxl2keMF7oPT5M0XnA 最近我寫了一篇講解 context 包源碼的文章《Go 併發控制:context 源碼解讀》,在閲讀源碼的過程中,我在 context 包測試代碼中發現了一個解決循環依賴的小技巧,在此分享給大家。 x_test.go 解決循環依賴 context 包源碼目錄結構如下: https:/

jianghushinian 頭像

@jianghushinian

昵稱 江湖十年

@wbccb

【微前端】singleSpa&importHTMLEntry(流程圖)源碼解析

single-spa v5.9.3 通過輕量級路由劫持和狀態機設計,實現微前端的動態加載與隔離,主要實現 路由管理:hashchange、popstate、history.pushState、history.replaceState進行劫持,路由變化時,觸發 reroute() 子應用狀態管理:不同執行邏輯轉化不同的狀態,比如 加載流程:toLoadPromise→toBo

wbccb 頭像

@wbccb

昵稱 白邊

@wbccb

【微前端】qiankun v2.10.16(流程圖)源碼解析

整體核心流程 源碼分析 single-spa 存在以下主要的缺點 路由狀態管理不足:無法保持路由狀態,頁面刷新後路由狀態丟失 父子應用間的路由交互以來 postMessage 等方式,開發體驗差 未提供原生的 CSS 和 JS 沙箱隔離,可能導致樣式污染或者全局變量衝突 默認以來 webpack 的構建配置,其他構建工具需要改造後才能兼容 版本兼容性差,如果使用不同的 Vue 版本,

wbccb 頭像

@wbccb

昵稱 白邊

@soroqer

Map 的源碼分析、內存分配、擴容機制-Golang 🔥

Go 語言的 map 是內置的鍵值對(Key-Value)集合類型,是基於哈希表實現的高效數據結構,用於高效存儲和查找數據。其核心特性如下: 無序性:map 中的鍵值對存儲順序不固定,無法通過索引訪問(區別於切片)。 鍵唯一性:鍵(Key)必須唯一,重複插入同一鍵會覆蓋舊值。 動態大小:map 會根據存儲的數據量自動擴容,無需手動管理內存。 通過深入理解 map 的源碼和內存分配,開發者

soroqer 頭像

@soroqer

昵稱 soroqer

@soroqer

Channel 的源碼分析與高效使用-Golang 🔥

“不要通過共享內存來通信,而要通過通信來共享內存”。這句話精準概括了 Go 併發模型的核心哲學——而承載這一哲學的核心原語,正是 channel(通道)。 要深入理解 channel,我們需要從 runtime 包的源碼層面分析其核心結構、關鍵操作(創建、發送/接收、關閉)的實現邏輯,以及底層如何通過同步機制(鎖、等待隊列)實現協程(Goroutine)間的安全通信。 以下源碼基於 go1.24.

soroqer 頭像

@soroqer

昵稱 soroqer

@jinyeyoudianerliang

AQS 核心方法和源碼

在 AQS (AbstractQueuedSynchronizer) 中,這些方法涉及到同步的獲取和排隊機制,它們實現了類似於鎖(Lock)和信號量(Semaphore)的功能。AQS 通過內部維護一個 FIFO 隊列和一些節點來管理線程的同步。下面逐個解釋這些方法的作用: AQS 核心方法和源碼 1. acquire(int arg) 作用:嘗試獲取同步狀態,如果失敗,則加入隊列並阻塞線程

jinyeyoudianerliang 頭像

@jinyeyoudianerliang

昵稱 今夜有點兒涼