原创 讀完Golang源碼之Container

基於源碼Golang1.14.2 堆 type Interface interface { sort.Interface Push(x interface{}) Pop() interface{} // remove a

原创 Go 1.14新特性

工具 module相關 go build等命令默認將會使用 -mod=vendor,如果需要使用mod cache需要顯示指定 -mod=mod。 go mod init 設置go.mod文件是-mod=readonly,go.

原创 MySQL——解釋Explain輸出格式

1. 前言 1.1 表1 CREATE TABLE `notify_inprocess` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `order_id` varchar(64)

原创 讀完Golang源碼之Runtime-Slice

基於源碼Golang1.14.2 切片和數組的不同 數組:計算機會爲數組分配一塊連續的內存來保存數組中的元素,我們可以利用數組中元素的索引快速訪問元素對應的存儲地址 切片:切片其實就是動態數組,它的長度並不固定,可以追加元素並會

原创 讀完Golang源碼之Context

介紹 Go 1.7 標準庫引入 context,中文譯作 “上下文”,準確說它是 goroutine 的上下文,包含 goroutine 的運行狀態、環境、現場等信息。 context 主要用來在 goroutine 之間傳遞上下

原创 MySQL備庫滯後與主庫

實例 郵件服務在亞馬遜RDS上有兩個實例(a和b),其中b作爲a的備庫。我們假設在資源配置相同的情況下出現b遠遠滯後於a,且b的iops接近於a的兩倍,那麼爲什麼會出現這種情況呢? 主從是怎麼同步的 客戶端連上主庫執行語句產生bi

原创 Linux Namespace

前言 前兩天在學習docker相關知識,知道docker是基於Linux Namespace來讓不同的容器在宿主機上實現隔離的,遂對Linux Namespace產生了興趣。Linux Namespace是Linux提供的一種內核

原创 SSH及登錄

簡介 SSH(Secure Shell)是一個提供數據通信安全、遠程登錄、遠程指令執行等功能的安全網絡協議,由芬蘭赫爾辛基大學研究員Tatu Ylönen,於1995年提出,其目的是用於替代非安全的Telnet、rsh、rexe

原创 MySQL中Innodb引擎的各種鎖

前言 本文是MySQL使用innodb引擎涉及到的相關的鎖 MySQL中有着Lock和Latch的概念,在數據庫中,這兩者都可以被稱爲“鎖”,但是兩者有着截然不同的含義。 如下圖是對鎖的詳細分類: 其中: Latch一般稱爲閂

原创 Dockerfile最佳實踐

前言 本文參考Docker官方文檔 撰寫Dockerfile我們有幾個大前提 變化最少的部分放在Dockerfile的前面,變化大的放在後面,這樣持續集成的時候可以重複使用之前的layer 一個容器應該只運行單個應用,不要寫一個

原创 MySQL自增id溢出

前言 線上推送業務的數據庫出現連接數激增,同時出現推送內容丟失。綜合兩種情況,查詢推送表發現自增id已經增加到21億+。初步判斷應該是自增id過多影響連接數,但是有多個問題不太理解(如自增id爲什麼不連續、int(11)會在多大數

原创 Swarm初探

1 簡介 Swarm 是使用 SwarmKit 構建的 Docker 引擎內置(原生)的集羣管理和編排工具。其主要作用是把若干臺Docker主機抽象爲一個整體,並且通過一個入口統一管理這些Docker主機上的各種Docker資源。Sw

原创 Docker網絡模式

傳統網絡 none網絡 這種網絡模式下容器只有lo迴環網絡,沒有其他網卡。none網絡可以在容器創建時通過–network=none來指定。這種類型的網絡沒有辦法聯網,封閉的網絡能很好的保證容器的安全性。 host網絡 通過命令–ne

原创 WebSocket初探

WebSocket初探WebSocket定義WebSocket握手客戶端申請協議升級服務端響應協議升級WebSocket數據傳輸數據幀數據幀格式概覽數據幀格式詳解掩碼算法數據傳遞數據分片連接保持 + 心跳關閉連接 WebSocket定

原创 Docker鏡像的存儲機制

Docker鏡像中的關鍵概念 registry:registry 用以保存 docker 鏡像,其中還包括鏡像層次結構和關於鏡像的元數據。 repository:registry 是 repository 的集合,repositor