原创 學會使用Kafka(四)日誌

日誌 這裏所說的日誌是用來記錄生產者向主題發送消息而產生的日誌,但日誌中記錄的並不是消息而是record,因爲Kafka並不是將原始消息直接寫入日誌的,而是把消息和其他元數據封裝在一個record裏寫入日誌,我們把這個record叫做消息集

原创 學會使用Kafka(二)Kafka集羣搭建

Kafka集羣部署 容量規劃 操作系統的選擇 操作系統來說優先選擇Linux因爲它支持的IO模型並支持零拷貝技術,而且主要是因爲Kafka社區對Linux上的更新比較迅速,所以生產環境建議使用Linux系統。 磁盤的選擇和磁盤容量 磁盤的話

原创 學會使用Kafka(七)消費者組與消費者偏移量

消費者組與消費者偏移量 消費者組 具有相同組ID的消費者就屬於同一個消費者組,它有如下特點: 一個組可以有多個消費者 主題中的消息只能被同一個組中的一個消費者消費 一個主題可以被多個消費者組消費 消費者組的概念主要是爲了實現

原创 學會使用Kafka(三)主題、分區與副本

主題、分區與副本 基本概念 主題、分區和副本的關係 主題是一個邏輯概念,代表了一類消息,實際工作中我們使用主題來區分業務,而主題之下並不是消息,而是分區,分區是一個物理概念,它是磁盤上的一個目錄,目錄中是保存消息的日誌段文件。分區的目的是爲

原创 學會使用Kafka(六)無消息丟失配置

無消息丟失配置 我們有時候聽到開發說消息丟了。遇到這種情況你要想找這個消息通常是去生產者的日誌裏去看是否發送了這條消息以及去Kafka日誌裏去找是否有這條消息,不過這都是事後措施,通常來說我們如果要求不丟失消息,那麼我們要怎麼做呢? 但是

原创 學會使用Kafka(十)常用參數說明

# ----------------------系統相關---------------------- # broker的全局唯一編號,不能重複,和zookeeper的myid是一個意思 broker.id=0 # broker監聽IP和

原创 持續集成(一):什麼是持續集成(CI)、持續交付(CD)和持續部署(CD)

持續集成、持續交付和持續部署 持續集成 Continuous Integration:持續集成,簡稱CI,是軟件開發週期的一種實踐,把代碼倉庫(Gitlab或者Github)、構建工具(如Jenkins)和測試工具(SonarQube)集成

原创 Python迭代器與生成器

Python迭代器與生成器 列表生成式 列表生成式也叫做列表推導式,它本身還是列表,只不過它是根據我們定義的規則來生成一個真實的列表。 list2 = [x for x in range(10)] print(list2) 下面是一個複雜的

原创 Linux中的零拷貝

零拷貝 本文圖片和一些內容均來自後面的參考,非原創只是把文章中的一些關鍵內容整理一下,算作是一個學習筆記。 傳統的I/O操作 傳統的IO操作是用戶應用程序只是需要調用兩個系統調用 read() 和 write() 就可以完成這個數據傳輸操

原创 持續集成(二):Jenkins部署

Jenkins 什麼是Jenkins Jenkins是一個開源的使用Java開發的持續集成工具,提供了軟件開發的持續集成服務,它把開發工作和運維工作結合在一起。它可以把Sonar代碼質量檢測工具、Maven或者Ant編譯打包工具、Githu

原创 Django工程的分層結構

前言 傳統上我們都知道在Django中的MTV模式,具體內容含義我們再來回顧一下: M:是Model的簡稱,它的目標就是通過定義模型來處理和數據庫進行交互,有了這一層或者這種類型的對象,我們就可以通過對象來操作數據。 V:是View的簡稱

原创 關於Nginx499、502和504的分析

我相信有些人在面試運維類崗位的時候會碰到對方問關於這方面的問題,我這裏通過幾個實驗來複現這個情況,並做出相關分析,我希望大家看完後針對這種問題能有一個清晰思路。 服務器 IP Nginx 192.168.10.40 後端W

原创 解讀TIME_WAIT--你在網上看到的大多數帖子可能都是錯誤的

由於TCP協議整個機制也非常複雜我只能儘可能的在某一條線上來說,不可能面面俱到,如果有疏漏或者對於內容有異議可以留言。謝謝大家。 查看服務器上各個狀態的統計數量: netstat -ant | awk '/^tcp/ {++y[$NF]}

原创 同一個POD中默認共享哪些名稱空間

如果通過POD的形式來啓動多個容器那麼它們的名稱空間會是共享的麼,所以我這裏討論是在默認情況下同一個POD的不同容器的哪些名稱空間是打通的。這裏先說一下結論,共享的是UTS、IPC、NET、USER。 UTS名稱空間 主機名名稱空間,保存內