原创 深入解讀Redis分佈式鎖

之前碼甲哥寫了兩篇有關線程安全的文章: 你管這叫線程安全? .NET八股文:線程同步技術解讀 分佈式鎖是"線程同步"的延續 最近首度應用"分佈式鎖",現在想想,分佈式鎖不是孤立的技能點,這其實就是跨主機的線程同步。 進程內 跨進程

原创 你是不是對MD5算法有誤解?

大家常聽到“MD5加密”、“對稱加密”、“非對稱加密”,那麼MD5屬於哪種加密算法? 面試問這樣的問題,準是在給你挖坑。 "MD5加密"純屬口嗨,MD5不是加密算法,是摘要算法。 今天小碼甲帶大家梳理加密算法、摘要算法的定義和場景:

原创 最適合新手的Redis Cluster搭建過程

好記性不如爛筆頭,記錄分片高可用Redis Cluster的搭建過程 Redis集羣演進過程 Redis單節點 主從複製: 複製主要實現了數據的多機備份,以及對於讀操作的負載均衡和簡單的故障恢復。 故障恢復無法自動化;寫操作無法負載均

原创 String 是一個奇怪的引用類型

開局兩張圖,內容全靠刷! 馬甲哥看到這樣的現象,一開始還是有點懵逼。 這個例子,string是純粹的引用類型,但是在函數傳值時類似於值傳遞; 我之前給前後示例的內存變化圖吧: 根因就是大多數高級語言都把String設計成不可變的:

原创 抓住異步編程async/await語法糖的牛鼻子: SynchronizationContext

長話短說,本文帶大家抓住異步編程async/await語法糖的牛鼻子: SynchronizationContext 引言 C#異步編程語法糖async/await,使開發者很容易就能編寫異步代碼。 零散看過很多文章,很多是填鴨式灌輸

原创 服務治理演進剖析 & Service Mesh、 xDS核心原理梳理

基於XDS協議實現控制面板與數據面板通信分享 基於這段時間在同程藝龍基礎架構部的蹲坑,聊一聊微服務治理的核心難點、歷史演進、最新動態, 以上內容屬自我思考,不代表同程藝龍技術水準。如理解有偏差、理解不透徹、現狀梳理不清楚的請大家多指教。 大

原创 分享一個Github相關彩蛋

樓上很多回答 都是基於手把手實操Github、Git源代碼管理相關, 這些操作“無他,唯手熟爾”。 今天提供一個github上閱讀源碼的小技巧,逆天級別的彩蛋。 要想成爲大神,Github就是最佳樣板,而原生的Github代碼文件瀏覽很不方

原创 面試八股文:你寫過自定義任務調度器嗎?

最近入職了新公司,嘗試閱讀祖傳代碼,記錄並更新最近的編程認知。 思緒由Q1引發,後續Q2、Q3基於Q1的發散探究 Q1. Task.Run、Task.Factory.StartNew 的區別? 我們常使用Task.Run和Task.F

原创 你管這叫“線程安全”?

來來來,面試八股文? 今天我們從什麼叫"線程安全"聊起? 今日份的乾糧: 什麼叫線程安全? 線程安全與變量的關係? 變量又與堆/棧/靜態存儲區有密切關係 什麼叫線程安全? 我們以常見的一行代碼i++ ,i-- 爲例, 計算機

原创 .NET WebSockets 核心原理初體驗

上個月我寫了《.NET gRPC核心功能初體驗》, 裏面使用gRPC雙向流做了一個打乒乓球的Demo, 實時雙向這兩個標籤是不是很熟悉,對, WebSockets也可以做實時雙向通信。 本文將利用WebSockets(SignalR的一部分

原创 牆裂推薦:這可能是CAP理論的最好現實解釋

這篇文章藍本:http://ksat.me/a-plain-english-introduction-to-cap-theorem 經過小碼甲意譯、原創配圖, 幹到讓你懷孕。 你可能經常聽到CAP定理, 這個定理描述了在設計分佈式系統時

原创 全網最通透的“閉包”認知 -超越語言

閉包作爲前端面試的必考題目,常讓1-3年工作經驗的Javascripter感到困惑,其實C#語言也有閉包。 今天我們深入聊一聊[閉包], 查缺補漏! 以面試題 · 投石問路 以C#閉包 · 庖丁解牛 跨語言 · 追本溯源 一等函數

原创 .NET gRPC 核心功能初體驗,附Demo源碼

gRPC是高性能的RPC框架, 有效地用於服務通信(不管是數據中心內部還是跨數據中心)。 由Google開源,目前是一個Cloud Native Computing Foundation(CNCF)孵化項目。 其功能包括: 雙向流 強大的

原创 鵝廠二面,nginx回憶錄

前天二面鵝廠,面試官問出了“nginx你瞭解嗎?”這樣寬泛直白的句式,我一時抓不到重點,一時語噻。 下班想了一下,平時潛移默化用到不少nginx的能力,但在面試的時候沒有吹成對應的概念。 面談nginx核心能力 nginx是老牌web服務

原创 Ingress-nginx工作原理和實踐

本文記錄/分享 目前項目的 K8s 部署結構和請求追蹤改造方案 這個圖算是一個通用的前後端分離的 k8s 部署結構: Nginx Ingress 負責暴露服務(nginx前端靜態資源服務), 根據十二要素應用的原 則,將後端 api 作爲