kafka權威指南讀書心得

2021-09-11 10:50:43 字數 1617 閱讀 1265

kafka特點:

1解耦性:生產者和消費者分離,生產者完全不需要關注生產的訊息有多少消費者消費,什麼時候消費完,消費者也只需通過制定埠和topic來消費資料就ok了

2與其它訊息訂閱系統相比(例如rabbit mq),同一條訊息可以被不同分組的多個消費者消費,互不影響

3訊息序列化到磁碟,不怕丟失,可以設定乙個過期時間log.retention.hours/minutes/ms,解決資料量過多的問題(新版本kafka需要管理工具來改變預設引數)

4擴充套件性:增加broker擴充套件kafka伺服器效能,乙個broker失效訊息會自動轉移到其它broker上

zookeeper依賴性:儲存kafka元資料,路徑為zookeeper.host:2181/kafkadir(kafkadir是為了zookeeper集群可以共享給其它應用程式)

zookeeper群組:一致性協議,選舉機制。一般奇數臺zookeeper機器,3個或5個(2n-1和2n個機器都只能承受n個機器失效,所以選2n-1),

但是不建議超過7個,否則一致性協議導致整個群組效能降低

(一致性協議:zba演算法-原子訊息廣播演算法,群組的機器要啟動時或者崩潰後要選舉leader,啟動後要leader通過廣播訊息和follower保持狀態同步)

zookeeper配置:

datadir=/var/lib/zookeerper

port=2181

server.1=bigdata-01:2888:3888

server.2=bigdata-02:2888:3888

server.3=bigdata-03:2888:3888

kafk分割槽數選擇:

根據資料量和吞吐量進行選擇,

消費者把資料寫入資料庫的上限是50m/s,所以如果消費速率需求是1t,那麼需要20個分割槽

生產者的生產效率通常大於消費者,可以多考慮一些吞吐量

每個broker的分割槽數量也有乙個上限,過多分割槽會占用較多記憶體

kafka broker配置:所有broker的id在集群中必須唯一,每個kafka broker的配置包括所有brokers和相同的zookeeper connect

port=9092

broker.id=1

zookeeper.connect=bigdata-01:2181/kafkadir;bigdata-02:2181/kafkadir;bigdata-03:2181/kafkadir

port=9092

broker.id=2

zookeeper.connect=bigdata-01:2181/kafkadir;bigdata-02:2181/kafkadir;bigdata-03:2181/kafkadir

port=9092

broker.id=3

zookeeper.connect=bigdata-01:2181/kafkadir;bigdata-02:2181/kafkadir;bigdata-03:2181/kafkadir

消費kafka的偏移量offset可以選擇提交到zookeeper或者kafka集群伺服器,一般考慮放在kafka伺服器減少zookeeper壓力,

zookeeper雖然技術上可以實現但一般也不建議共享給其它應用程式,因為kafka對zookeeper群組的延遲比較敏感

HTTP cookie HTTP權威指南讀書筆記

cookie是當前的識別使用者,實現持久會話的最好方式。就是服務給訪問它的客戶端貼上唯一標籤,客戶端訪問伺服器時,都會帶著這個標籤,這樣伺服器就能識別了。會話cookie和執行cookie。會話cookie 臨時cookie,它記錄了使用者訪問 的設定和偏好。使用者退出瀏覽器時,會話cookie就會...

關閉連線的奧秘 HTTP權威指南讀書心得(六)

我又來記筆記了,雖然部落格只寫到了第五章,但是這本書基本上算是快讀完了吧.讀這種書比一般的程式設計演算法書籍更需要耐心,它主要說的是原理,沒有辦法讓你立刻實踐,所以很容易浮在上面。一天頂多讀個兩三章就有點看不下去了.之前忘了在 好像有位知名前輩評價這本書說理解透徹了就可以去找乙份網際網路工作了,讀到...

kafka權威指南閱讀筆記(一)

1.如何為主題選定分割槽數量 為主題選定分割槽數量並不是 一 件可有可無的事情,在進行數量選擇時,需要 考慮如下幾個因素。主題需要達到多大的吞吐量?例如,是希望每秒鐘寫入 100kb 還是 1gb?從單個分割槽讀取資料的最大吞吐量是多少?每個分割槽 一般都會有乙個消費 者,如果你知道消費者將資料寫入...