kafka學習筆記1:測試環境搭建
本文來自 fairjm@ituring 轉截請註明出處
順便一提部落格搬家,從iteye搬到了部落格園http://www.cnblogs.com/fairjm/,主要部落格園有markdown,這樣兩邊同步就方便啦:)
最近因為架構中引入了kafka,一些之前在程式碼中通過RPC呼叫強耦合但是適合非同步處理的內容可以用kafka重構一下.
考慮從頭學一下kafka瞭解其特性和使用場景。
環境選擇
首先是測試環境的搭建,平時使用的是win,但kafka以及zk在win上會存在一些bug(例如 https://issues.apache.org/jira/browse/KAFKA-1194),最好還是在linux平臺上搭建.
虛擬機器是一個不錯的選擇但開銷比較大,日常使用的筆記本8G記憶體開啟虛擬機器不是很方便,bash on windows
是個不錯的選擇.
(另在Store
中可以下載ubuntu
等子系統,現在只限於insider)
在元件中開啟後重啟電腦更新.
環境搭建
重啟後,在命令列或者powershell中輸入bash進入環境.
但這裡的環境和外部的windows不互通,windwos裝了java也無法在bash中使用.
需要先安裝一些額外的元件.
java安裝
輸入後選擇一個即可(這裡選擇了openjdk-8-jre-headless)
zookeeper
kafka依賴zk
簡單的關係如下(圖片來源kafka權威指南):
所以使用kafka之前需要配置好zk.
cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -zxf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /usr/local/zookeeper
mkdir -p /var/lib/zookeeper
vim /usr/local/zookeeper/conf/zoo.cfg
/usr/local/zookeeper/bin/zkServer.sh start
zoo.cfg的內容和zoo_sample.cfg大致相同,將dataDir換為/var/lib/zookeeper
即可.
內容如下:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
啟動後zk在2181埠執行
kafka
kafka安裝過程類似.
這裡學習使用0.9.0.1版本,去年2月釋出.
和所看的書保持一致避免出現不相容問題導致書中例子無法執行阻礙進度(新版本的功能之後再額外學習).
wget http://mirror.bit.edu.cn/apache/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
tar —zxf kafka 2.11-0.9.0.1.tgz
mv kafka 2.11-0.9.0.1 /usr/local/kafka
mkdir /tmp/kafka—logs
/usr/local/kafka/bin/kafka—server—start.sh -daemon /usr/local/kafka/config/server.properties
建立topic並驗證:
# /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 1 --partitions 1 --topic test
Created topic "test".
# /usr/local/kafka/bin/kafka-topics.sh --zookeeper localhost:2181
--describe --topic test
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
同時zk的/brokers/topics下會多出一個test.
至此整個安裝過程就結束了.
上面的/usr/local/kafka/config/server.properties
是broker的配置,其中一些配置的含義如下:
broker.id
都必須要有一個id 預設是0
在一個叢集裡必須唯一port
監聽的埠 預設是9092
指定1024以下的埠要用root跑 但不建議zookeeper.connent
連線zk的地址 預設是localhost的2181
格式是hostname:port/path
預設path不寫是根log.dirs
log塊的儲存位置
可以用,分隔存多個
一個分割槽的日誌會存在一個路徑下num.recovery.threads.per.data.dir
用來啟動和結束時做日誌恢復相關
和dirs的數量相關 如果是3 dirs數量是2 那會有6個執行緒num.partitions
一個新的topic會有多少個分割槽
分割槽數只能比這個數字大 不能比這個小
相關文章
- React學習筆記1:環境搭建React筆記
- 學習筆記:MQTT環境搭建筆記MQQT
- Android環境搭建學習筆記Android筆記
- 《Kafka筆記》2、環境搭建、Topic管理Kafka筆記
- <react學習筆記(1)>認識react和環境搭建React筆記
- perl學習筆記--搭建開發環境筆記開發環境
- Maven 學習筆記——Maven環境配置(1)Maven筆記
- laravel學習筆記之開發環境搭建Laravel筆記開發環境
- 【OCP學習筆記】配置網路環境 -- 1筆記
- Dockerfile 與 Compose 環境搭建學習筆記(二)Docker筆記
- Dockerfile 與 Compose 環境搭建學習筆記(一)Docker筆記
- 001_使用VMWareWorkstation搭建學習環境筆記筆記
- docker 學習筆記之實戰 lnmp 環境搭建系列 (2) ------ 手動搭建 lnmp 環境Docker筆記LNMP
- php 學習筆記之搭建開發環境(mac版)PHP筆記開發環境Mac
- 分散式基礎&專案環境搭建_學習筆記分散式筆記
- webpack學習筆記:搭建基本的前端開發環境Web筆記前端開發環境
- webpack學習筆記(mac環境)Web筆記Mac
- tensorflow學習筆記1——mac開發環境配置筆記Mac開發環境
- Kafka 學習筆記Kafka筆記
- TypeScript學習筆記(一)環境搭建和資料型別TypeScript筆記資料型別
- android學習筆記--檢測是否為wifi環境Android筆記WiFi
- kaldi環境搭建 | yesno 測試
- android測試環境搭建Android
- 學習筆記之測試筆記
- Object C學習筆記6-如何在Windows環境搭建Object C開發環境Object筆記Windows開發環境
- Kafka 學習筆記(二) :初探 KafkaKafka筆記
- Kafka學習筆記(二) :初探KafkaKafka筆記
- Kafka開發環境搭建Kafka開發環境
- Kafka 分散式環境搭建Kafka分散式
- docker 學習筆記之實戰 lnmp 環境搭建系列 (1) —— docker 介紹與安裝Docker筆記LNMP
- 【Go學習筆記1】go語言開發環境搭建&go實現的hello world!Go筆記開發環境
- kafka學習筆記(一)Kafka筆記
- griffin環境搭建及功能測試
- 搭建自動化測試環境
- Xamarin 學習筆記 - 配置環境(Windows & iOS)筆記WindowsiOS
- 學習筆記|AS入門(一) 環境篇筆記
- GoldenGate學習筆記(10)_RAC環境Go筆記
- 達夢6.0試用之測試環境搭建