Init Container 為初始化相關(guān)的任務(wù)提供了區(qū)別于主應(yīng)用程序的獨立的生命周期,從而實現(xiàn)關(guān)注點分離。 初始化在很多編程語言中都備受關(guān)注。比如在 Java 中,為了初始...
Init Container 為初始化相關(guān)的任務(wù)提供了區(qū)別于主應(yīng)用程序的獨立的生命周期,從而實現(xiàn)關(guān)注點分離。 初始化在很多編程語言中都備受關(guān)注。比如在 Java 中,為了初始...
一些應(yīng)用需要具備 self-aware 能力,獲取關(guān)于自身的一些信息。Kubernetes 的 Downward API 就提供了一種簡單的將元數(shù)據(jù)注入到應(yīng)用中的機制。大多數(shù)...
有狀態(tài)的分布式應(yīng)用通常需要一些特性作為支撐,比如持久化的身份標(biāo)識、網(wǎng)絡(luò)、存儲和有序性等。Kubernetes 中的 StatefulSet 原語就提供了一系列基礎(chǔ)構(gòu)件,方便管...
Service Discovery 主要負(fù)責(zé)提供一類穩(wěn)定的入口,利用這些入口服務(wù)的客戶端能夠訪問到提供服務(wù)的后臺實例。 部署到 Kubernetes 的應(yīng)用很少是單獨存在的,...
Singleton Service 模式會保證在某個特定的時間點,有且只有一個應(yīng)用實例是活躍的。這個模式可以在應(yīng)用內(nèi)部實現(xiàn),也可以完全交給 Kubernetes 去處理。 K...
Daemon Service 能夠向目標(biāo)節(jié)點放置和運行有優(yōu)先級的、面向基礎(chǔ)設(shè)施的 Pod,通常被管理員用來部署與節(jié)點相關(guān)聯(lián)的 Pod 以增強 Kubernetes 平臺的功能...
Batch Job Batch Job 模式適合處理隔離的、原子化的工作任務(wù),能夠在分布式的環(huán)境中,可靠地運行 short-lived Pods,直到工作任務(wù)成功地結(jié)束。 在...
Automated Placement 是 Kubernetes 中 scheduler 的核心功能,負(fù)責(zé)將新的 Pod 分配給合適的節(jié)點,滿足容器的資源需求,同時遵守設(shè)定好...
asyncio 基礎(chǔ) 創(chuàng)建協(xié)程 使用 async 關(guān)鍵字創(chuàng)建 coroutine 創(chuàng)建 coroutine 和創(chuàng)建普通的函數(shù)一樣直接,唯一的區(qū)別在于使用 async def ...
將高成本的任務(wù)委派給多個工作節(jié)點,這種類型的應(yīng)用并不適合由 Pub/Sub 模式實現(xiàn)。因為我們并不想同一個任務(wù)被多個消費者收到,相反我們更需要一種類似負(fù)載均衡的消息分發(fā)模式。...
主要有兩類技術(shù)可以用來整合分布式應(yīng)用:一類是通過共享存儲作為一個中心化的協(xié)調(diào)者,跟蹤和保存所有需要共享的信息;另一類則是通過消息中間件,向系統(tǒng)中的所有節(jié)點散布數(shù)據(jù)、事件和命令...
復(fù)合類型 最直觀的創(chuàng)造新的復(fù)合類型的方式,就是直接將多個類型組合在一起。比如平面上的點都有 X 和 Y 兩個坐標(biāo),各自都屬于 number 類型。因此可以說,平面上的點是由兩...
通用的 map 實現(xiàn) map 是函數(shù)式編程中非常常見的一類接口,可以將某個函數(shù)操作應(yīng)用到一系列元素上。一個通用的 map() 實現(xiàn)如下: 上述實現(xiàn)主要針對可迭代對象,可以將函...
為什么要有類型 從硬件和機器碼這類底層視角來看,程序邏輯(代碼)和代碼操作的數(shù)據(jù)都是通過比特(bits)來表示,沒有任何區(qū)別。當(dāng)系統(tǒng)沒辦法正確地將這兩者區(qū)分開來,錯誤就很容易...
由云原生平臺管理的容器化應(yīng)用,并不能控制其自身的生命周期。它們必須監(jiān)聽由管理平臺發(fā)出的事件,再對生命周期做出相對應(yīng)的變更。所謂的生命周期管理,即代表應(yīng)用該如何讀取和響應(yīng)這些由...
Streams 是 Node.js 的組件和模式中最重要的幾個之一。在 Node.js 這類基于 event 的平臺上,最高效的實時地處理 I/O 的方式,就是當(dāng)有輸入時就立...
回調(diào)函數(shù)(Callbacks)是 Node.js 中異步編程的底層構(gòu)件,但它們遠(yuǎn)遠(yuǎn)達(dá)不到對用戶友好的程度。對于實現(xiàn)代碼中最常見的串行控制流,一個未經(jīng)訓(xùn)練的開發(fā)者很容易陷入到 ...
在同步式編程中,為了解決特定的問題,代碼被組織成一系列連貫的計算步驟。其中每一個步驟都是阻塞的,即只有當(dāng)某個操作完成以后,才有可能繼續(xù)執(zhí)行下一個步驟。這種方式形成的代碼非常容...
一、Node.js 哲學(xué) 每種編程語言平臺都有其特定的“哲學(xué)”,即一系列被社區(qū)普遍接受的指導(dǎo)原則和規(guī)范。這些規(guī)范對語言平臺本身的演進(jìn)以及如何設(shè)計和開發(fā)應(yīng)用都有著深刻的影響。 ...
Template 模式與 Strategy 模式有很多相似之處。Template 模式首先會定義一個虛擬基類,描述某個組件的骨架(即通用的部分),同時令骨架中存在的某些步驟處...