原创 Go ORM框架 - GORM 踩坑指南

今天聊聊目前業界使用比較多的 ORM 框架:GORM。GORM 相關的文檔原作者已經寫得非常的詳細,具體可以看這裏,這一篇主要做一些 GORM 使用過程中關鍵功能的介紹,GORM 約定的一些配置信息說明,防止大家在使用過程中踩坑。 以下示例

原创 Go 並行計算的核心-Goroutine

這一篇主要分享的是 Go 中比較核心的概念:協程(Coroutine),在 Go 中被改寫之後稱之爲:Goroutine,它是併發模型的基本執行單元。事實上每一個Go程序至少有一個Goroutine:主Goroutine。當程序啓動時,它會

原创 高端面試必備:一個Java對象佔用多大內存

這個問題一般會出現在稍微高端一點的 Java 面試環節。要求面試者不僅對 Java 基礎知識熟悉,更重要的是要了解內存模型。 Java 對象模型 HotSpot JVM 使用名爲 oops (Ordinary Object Pointers

原创 Go 包管理歷史以及 Go mod 使用

之前也寫過 Go 管理依賴工具 godep 的使用,當時看 godep 使用起來還是挺方便,其原因主要在於有總比沒有強。關於依賴管理工具其實還是想從頭聊聊這個需求以及大家做這個功能的各種出發點。 GOPATH 和 GOROOT GOROOT

原创 MySQL 主從複製原理不再難

上篇我們分析過 Binlog 日誌的作用以及存儲原理,感興趣的可以翻閱: 一文帶你瞭解 Binlog 日誌 Binlog 日誌主要作用是數據恢復和主從複製。本身就是二進制格式的日誌文件,網絡傳輸無需進行協議轉換。MySQL 集羣的高可用,負

原创 帶你瞭解 MySQL Binlog 不爲人知的祕密

MySQL 的 Binlog 日誌是一種二進制格式的日誌,Binlog 記錄所有的 DDL 和 DML 語句(除了數據查詢語句SELECT、SHOW等),以 Event 的形式記錄,同時記錄語句執行時間。 Binlog 的主要作用有兩個:

原创 趁熱打鐵-再談分佈式事務

繼上一篇講 MySQL InnoDB 下的事務之後我們趁熱打鐵,繼續跟進分佈式事務。 分佈式事務主要解決分佈式一致性的問題。說到底就是數據的分佈式操作導致僅依靠本地事務無法保證原子性。與單機版的事務不同的是,單機是把多個命令打包成一個統一處

原创 一文說清 InnoDB 的事務機制

我們從一個轉賬的故事開始。 隔壁小王從美團上找到了一家水餃店,準備中午喫水餃。下單成功,支付20元。 商家這裏響了一下:叮叮,您有美團外賣新訂單啦,請及時處理。水餃一份,好嘞,下鍋。 很快小王喫到外賣了,喫完美美地躺下開始睡覺。 突然手機一

原创 MySQL 索引結構

談到 MYSQL 索引服務端的同學應該是熟悉的不能再熟悉,新建表的時候怎麼着都知道先來個主鍵索引,對於經常查詢的列也會加個索引加快查詢速度。那麼 MYSQL 索引都有哪些類型呢?索引結構是什麼樣的呢?有了索引是如何檢索數據的呢?我們圍繞這

原创 InnoDB引擎面面觀

自 2010 年 MYSQL 5.5.5 發佈以來,InnoDB 已經取代 MyISAM 作爲 MYSQL 的默認表類型,這得益於他在新時代前瞻性的功能開發: ☑ 遵循 ACID 模型開發的 DML 操作 ☑ 對事務的支持 ☑ 支持行級鎖

原创 MYSQL 整體架構淺析

對於一個服務端開發來說 MYSQL 可能是他使用最熟悉的數據庫工具,然而熟練掌握 MYSQL 語句的拼寫和卓越的多條件查詢不代表出現性能問題的時候你知道該怎麼解決。致力於不當 SQL boby,我們從頭開始入門 MYSQL,講一些你可能不知

原创 零拷貝(Zero-copy) 淺析及其應用

相信大家都有過面經歷,如果跟面試官聊到了操作系統,聊到了文件操作,可能會問你普通的文件讀寫流程,它有什麼缺點,你知道有什麼改進的措施。我們經常聽說 零拷貝,每次可能只是背誦一些面試要點就過去了,今天我們就從文件讀寫說起一步一步深入零拷貝。

原创 Netty 中的內存分配淺析-數據容器

本篇接續前一篇繼續講 Netty 中的內存分配。上一篇 先簡單做一下回顧: Netty 爲了更高效的管理內存,自己實現了一套內存管理的邏輯,借鑑 jemalloc 的思想實現了一套池化內存管理的思路: Arena 作爲內存分配器,可以被多

原创 你想了解的 HTTPS 都在這裏

HTTP 協議僅僅制定了互聯網傳輸的標準,簡化了直接使用 TCP 協議進行通信的難度。有關 HTTP 協議相關的講解請看前面兩節: HTTP 協議詳解 HTTP協議詳解(二) less is more 的概念本身很好,但是過於簡單也會承擔一

原创 HTTP 協議詳解(二)

前面一篇已經說過了 HTTP 的基本特性,HTTP 的發展史,前情回顧。這一篇就更詳細的 HTTP 協議使用過程一些參數配置,緩存,Cookie設置相關的細節做一些梳理。 數據類型與編碼 在 TCP/IP 協議棧裏,傳輸數據基本上都是 he