Alan Zhan 部落格

Live for nothing, or die for something

MongoDB Sorted Operation OOM

這篇應該會是難得的從問題反推回去學習的歷程吧,我得好好記錄紀錄。最近我們的 production 發生了 MongoDB 的 sort 操作的限制,具體訊息如下: MongoDB.Driver.MongoCommandException: Command find failed: Encountered non-retryable error during query :: caused by …

Kubernetes 核心介紹 Etcd

在任何一個系統中,甚麼東西會是最重要的東西呢?答案其實很簡單 : 資料,所以我就從 Kubernetes 的資料庫 etcd 開始學習起! 什麼是 etcd 呢 etcd 是 CoreOs 基於 Raft 算法開發的分散式 key-value 儲存,可用於服務發現、共享配置以及一致性保障 (如資料庫選主、分散式鎖等)。

安裝兩次的 Kubernetes Kubeadm

想要透過實戰來更了解 K8s ,所以想先自架 K8s cluster,但目前市面上自建 K8s 的方式越來越多種,可以透過 minikube 、 Kubeadm 等等,想說好吧那我就挑 Kubeadm 來裝看看,但是安裝的過程不是那麼順遂,這篇就分享一下我遇到的問題跟如何解決。

Kubernetes 基礎介紹

終於要來好好深入探討 Kubernetes ,因為 Kubernetes 是基於 golang 這門語言開發的,所以在稍早已經先針對 golang 深度研究了,不過對於 Docker 與 container 技術有經有深入研究過了,小弟就就不針對 Docker 技術展開了,如果也想看的話,歡迎敲碗,接下來就會好好的針對 Kubernetes 有一系列的文章介紹。

Golang 記憶體管理 GC 全面解析

新的一年又到來了,在這邊祝大家虎頭虎尾,所以這個年還沒過完,我得好好的繼續整理技術文章給大家了,這樣有好的開始! 上次分析完 Golang Goroutine 與 GMP 原理全面分析 之後,對 golang 這個語言有了更全面的了解,但是這些有了 GMP 的相關知識之後,是不是還缺少了記憶體管理這個面向呀?那麼今天就來好好的了解 golang 是如何管理他的記憶體吧。

Golang Goroutine 與 GMP 原理全面分析

最近在研讀 Kubernetes ,所以得好好地跟 golang 這個語言當朋友,看著看著看到了 goroutine ,但是始終不解 goroutine 是哪來幹嘛、為何而生的?所以我們在開始深入認識 goroutine 之前,我們可能要先來認識一下歷史,這樣我們才能更全面的認識 goroutine 的原理與設計思想。

10 個 Dockerfile 的最佳實踐

最近剛好在整理 docker 的技術給自己,剛好看到 dockerfile 的最佳實踐,想順手整理上來,不料看到官方已經有最佳實踐了,那我就順手做做翻譯的工作與添增自己的見解。 容器應該是短暫的 通過 Dockerfile 構建的鏡像所啟動的容器,應該盡可能的短暫,這邊的短暫意思是:很快速的啟動,並且很快速的終止。

Github Pages Custom Domain - Github Blog 自訂域名

最近剛好在更換域名,所以順手做一下筆記,也讓大家可以輕鬆上手,設定自己的 Github page 域名。 第一步:購買域名 先去購買自己想要的域名名稱:我是去 Google Domain 購買的,如果你有喜歡或者偏好的域名供應商,你也可以去你想要的供應商購買,本篇就以 Google Domain 為例。

Interpolation Search Algorithm - 插補搜尋法

繼續使用猜數字當範例, 1 ~ 100 的數字,但是這次你已經知道結果了,你如果還是繼續使用二元搜尋法,那麼效率不會那麼好,那我們該用甚麼方式解決呢? 概念 插補搜尋法 (Interpolation Search):是一個基於二元搜尋法的演算法,被搜尋的清單是需要事先先被排序過的,而且資料的分布狀態最好是呈現線性的,如果不是呈現線性分布,那麼在搜尋的過程中,將有可能會得到 O(n) 的結果,可能會 …

Jump Search Algorithm - 跳躍搜尋法

延續猜數字遊戲,1 ~ 100 我們是不是可以換個猜法呢? 如果我們從一開始,只要每次沒猜中,我們就往後面 +10 繼續猜,直到最大值範圍值變成我們所猜的數值後,往回開始找值,這樣做,在數值較小的時候,將會更有效率。