Kafka集群

Kafka集群是把狀態(tài)保存在Zookeeper中的,首先要搭建Zookeeper集群。
Zookeeper集群部署請查閱上節(jié)

一、Kafka 集群下載安裝

1趁俊、下載包

$ cd  /usr/local/services/src
$ wget http://apache.communilink.net/kafka/2.1.0/kafka_2.12-2.1.0.tgz
$ tar xvf kafka_2.12-2.1.0.tgz -C ../
$ cd ../kafka_2.12-2.1.0/

2、配置
broker配置:
broker配置文件為config/server.properties文件刑然,配置內(nèi)容主要分為以下幾個模塊,

Server Basics

Kafka server 基本配置
broker.id:是kafka集群server的唯一標識暇务。

broker.id=1
Socket Server Settings

Kafka 網(wǎng)絡相關配置

listeners:由用戶配置協(xié)議泼掠,ip,port垦细。
num.network.threads:這個是borker進行網(wǎng)絡處理的線程數(shù)
num.io.threads:這個是borker進行I/O處理的線程數(shù)
socket.send.buffer.bytes: 發(fā)送緩沖區(qū)buffer大小择镇,數(shù)據(jù)不是一下子就發(fā)送的,先回存儲到緩沖區(qū)了到達一定的大小后在發(fā)送括改,能提高性能
socket.receive.buffer.bytes:kafka接收緩沖區(qū)大小腻豌,當數(shù)據(jù)到達一定大小后在序列化到磁盤
socket.request.max.bytes:這個參數(shù)是向kafka請求消息或者向kafka發(fā)送消息的請請求的最大數(shù),這個值不能超過java的堆棧大小
其他配置項,開發(fā)測試環(huán)境可使用默認配置吝梅;生產(chǎn)環(huán)境推薦如下配置虱疏。

listeners=PLAINTEXT://10.4.4.151:9092
num.network.threads=8
num.io.threads=8
socket.send.buffer.bytes=1024000
socket.receive.buffer.bytes=1024000
socket.request.max.bytes=104857600
Log Basics

Kafka log 基本配置

log.dirs:log文件存儲路徑
num.partitions:topic默認的partitions數(shù)量。在創(chuàng)建topic時苏携,一般會指定partitions數(shù)量做瞪,因此該配置項在上述條件下基本無用。為了防止在創(chuàng)建topic時右冻,未指定partitions數(shù)量装蓬,因此推薦使用配置為3。
其他配置推薦使用默認配置

log.dirs=/data/kafka/kafka-sa
num.partitions=3
num.recovery.threads.per.data.dir=1
Internal Topic Settings

Kafka 內(nèi)部topic配置

開發(fā)測試環(huán)境推薦使用默認配置纱扭,均為1
生產(chǎn)環(huán)境推薦如下配置牍帚,replication數(shù)量為3,isr數(shù)量為2乳蛾。

offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
Log Flush Policy

Kafka log 刷盤暗赶、落盤機制

log.flush.interval.messages:日志落盤消息條數(shù)間隔,即每接收到一定條數(shù)消息屡久,即進行l(wèi)og落盤忆首。
log.flush.interval.ms:日志落盤時間間隔,單位ms被环,即每隔一定時間糙及,即進行l(wèi)og落盤。
強烈推薦開發(fā)筛欢、測試浸锨、生產(chǎn)環(huán)境均采用默認值,即不配置該配置版姑,交由操作系統(tǒng)自行決定何時落盤柱搜,以提升性能。
若對消息高可靠性要求較高的應用系統(tǒng)剥险,可針對topic級別的配置聪蘸,配置該屬性。

Log Retention Policy

Kafka log保留策略配置

log.retention.hours:日志保留時間表制,單位小時健爬。和log.retention.minutes兩個配置只需配置一項。
message.max.bytes:表示接受消息體的最大大小么介,單位是字節(jié)
default.replication.factor:默認的備份的復制自動創(chuàng)建topics的個數(shù)
replica.fetch.max.bytes:最大備份的拉取數(shù)量
log.retention.bytes:日志保留大小娜遵。一topic的一partition下的所有日志大小總和達到該值,即進行日志清除任務壤短。當日志保留時間或日志保留大小设拟,任一條件滿足即進行日志清除任務,-1表示不限制慨仿。
log.segment.bytes:日志分段大小。即一topic的一partition下的所有日志會進行分段纳胧,達到該大小镰吆,即進行日志分段,滾動出新的日志文件躲雅。
log.retention.check.interval.ms:日志保留策略定期檢查時間間隔鼎姊,單位ms。
日志保留大小相赁,保留時間以及日志分段大小可根據(jù)具體服務器磁盤空間大小相寇,業(yè)務場景自行決定。

log.retention.hours=3
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
log.retention.bytes=5368709120
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
Zookeeper

Kafka zookeeper 配置

zookeeper.connect:zk連接地址
zookeeper.connection.timeout.ms:zk連接超時時間钮科,默認6s唤衫。可根據(jù)具體的應用場景進行更改绵脯,特可采用如下配置佳励。

zookeeper.connect=10.4.4.151:2181,10.4.4.152:2181,10.4.4.153:2181
zookeeper.connection.timeout.ms=60000
Group Coordinator Settings

Kafka consumer group 協(xié)調(diào)配置

生產(chǎn)環(huán)境推薦配置3000
開發(fā)測試環(huán)境推薦配置0

group.initial.rebalance.delay.ms=3

二、啟動Kafka集群并測試

1蛆挫、系統(tǒng)服務啟動配置

$ cat /lib/systemd/system/kafka-sa.service 
[Unit]
Description=Apache kafka-sa-sales
After=network.target

[Service]
Type=simple
Environment=JAVA_HOME=/usr/local/services/jdk1.8.0_91
PIDFile=PIDFile=/usr/local/services/kafka_2.12-2.1.0/bin/kafka-sa.pid
ExecStart=/usr/local/services/kafka_2.12-2.1.0/bin/kafka-server-start.sh  /usr/local/services/kafka_2.12-2.1.0/config/server.properties
ExecStop=/bin/kill -TERM ${MAINPID}
User=user_00
Group=users
Restart=always
RestartSec=20

[Install]
WantedBy=multi-user.target

2赃承、啟動服務
從后臺啟動Kafka集群(3臺都需要啟動)

[root@localhost logs]# systemctl start kafka-sa.service

3、檢查服務是否啟動

[root@localhost logs]# jps
32502 Kafka
521 Jps
23151 QuorumPeerMain

4悴侵、創(chuàng)建Topic來驗證是否創(chuàng)建成功

# cd /usr/local/services/kafka_2.12-2.1.0/bin
# ./kafka-topics.sh --create --zookeeper 10.4.4.151:2181 --replication-factor 2 --partitions 1 --topic basketball
Created topic "basketball".

#解釋
--replication-factor 2   #復制兩份
--partitions 1 #創(chuàng)建1個分區(qū)
--topic #主題為basketball

查看所有topic和topic 狀態(tài)

# ./kafka-topics.sh --list --zookeeper 10.4.4.151:2181
basketball
# ./kafka-topics.sh --describe --zookeeper 10.4.4.151:2181 --topic basketball
Topic:basketball    PartitionCount:1    ReplicationFactor:2 Configs:
    Topic: basketball   Partition: 0    Leader: 3   Replicas: 3,1   Isr: 3,1

#分區(qū)為1  復制因子為2   Topic basketball的分區(qū)為0 
#Replicas: 3,1   復制的為3瞧剖,1
##創(chuàng)建一個broker,發(fā)布者發(fā)布消息
./kafka-console-producer.sh --broker-list 10.4.4.151:9092 --topic basketball
>NBA

##在到另一臺機器或同一臺一臺機器開一個終端創(chuàng)建一個消費者消費:
./kafka-console-consumer.sh --bootstrap-server 10.4.4.152:9092 --topic basketball --from-beginning
NBA

OKkafka集群搭建完畢

日志說明

server.log #kafka的運行日志
state-change.log  #kafka他是用zookeeper來保存狀態(tài)可免,所以他可能會進行切換抓于,切換的日志就保存在這里

controller.log #kafka選擇一個節(jié)點作為“controller”,當發(fā)現(xiàn)有節(jié)點down掉的時候它負責在游泳分區(qū)的所有節(jié)點中選擇新的leader,這使得Kafka可以批量的高效的管理所有分區(qū)節(jié)點的主從關系。如果controller down掉了浇借,活著的節(jié)點中的一個會備切換為新的controller.

登錄zk來查看zk的目錄情況

#使用客戶端進入zk
./zkCli.sh -server 10.4.4.152:2181

#查看目錄情況 執(zhí)行“l(fā)s /”
[zk: 10.4.4.152:2181(CONNECTED) 0] ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
[zk: 10.4.4.152:2181(CONNECTED) 1]

#顯示結(jié)果:[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
##上面的顯示結(jié)果中:只有zookeeper是zookeeper原生的捉撮,其他都是Kafka創(chuàng)建的

#標注一個broker
[zk: 10.4.4.152:2181(CONNECTED) 3] get /brokers/ids/3
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://10.4.4.153:9092"],"jmx_port":-1,"host":"10.4.4.153","timestamp":"1547877474320","port":9092,"version":4}
cZxid = 0x600000182
ctime = Sat Jan 19 13:57:53 CST 2019
mZxid = 0x600000182
mtime = Sat Jan 19 13:57:53 CST 2019
pZxid = 0x600000182
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x300046cf32a0005
dataLength = 190
numChildren = 0

#查看partion
[zk: 10.4.4.152:2181(CONNECTED) 4] get /brokers/topics/basketball/partitions/0
null
cZxid = 0x60000019f
ctime = Sat Jan 19 14:07:05 CST 2019
mZxid = 0x60000019f
mtime = Sat Jan 19 14:07:05 CST 2019
pZxid = 0x6000001a0
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妇垢,隨后出現(xiàn)的幾起案子巾遭,更是在濱河造成了極大的恐慌,老刑警劉巖闯估,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恢总,死亡現(xiàn)場離奇詭異,居然都是意外死亡睬愤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門纹安,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尤辱,“玉大人砂豌,你說我怎么就攤上這事」舛剑” “怎么了阳距?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長结借。 經(jīng)常有香客問我筐摘,道長,這世上最難降的妖魔是什么船老? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任咖熟,我火速辦了婚禮,結(jié)果婚禮上柳畔,老公的妹妹穿的比我還像新娘馍管。我一直安慰自己,他們只是感情好薪韩,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布确沸。 她就那樣靜靜地躺著,像睡著了一般俘陷。 火紅的嫁衣襯著肌膚如雪罗捎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天拉盾,我揣著相機與錄音桨菜,去河邊找鬼。 笑死盾剩,一個胖子當著我的面吹牛雷激,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播告私,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼屎暇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驻粟?” 一聲冷哼從身側(cè)響起根悼,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜀撑,沒想到半個月后挤巡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡酷麦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年矿卑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沃饶。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡母廷,死狀恐怖轻黑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琴昆,我是刑警寧澤氓鄙,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站业舍,受9級特大地震影響抖拦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舷暮,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一态罪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脚牍,春花似錦向臀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至驯遇,卻和暖如春芹彬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叉庐。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工舒帮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陡叠。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓玩郊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親枉阵。 傳聞我的和親對象是個殘疾皇子译红,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 前言 文章主要介紹以docker容器的方式部署kafka集群。 環(huán)境說明 三臺虛擬機:centos7.2 dock...
    湯尼房閱讀 12,439評論 0 11
  • 1. 在根目錄創(chuàng)建kafka文件夾(service1兴溜、service2侦厚、service3都創(chuàng)建) [root@lo...
    ITsupuerlady閱讀 212評論 0 0
  • 1. 在根目錄創(chuàng)建kafka文件夾(service1、service2拙徽、service3都創(chuàng)建) [root@lo...
    ITsupuerlady閱讀 227評論 0 0
  • 1. 在根目錄創(chuàng)建kafka文件夾(service1刨沦、service2、service3都創(chuàng)建) [root@lo...
    ITsupuerlady閱讀 173評論 0 0
  • “不忘初心膘怕,方得始終”想诅。這是一句眾所周知的箴言,它最早解讀自《華嚴經(jīng)》,后隨著時間的發(fā)酵侧蘸,初心一詞如陳年老酒般酣香...
    小彭又要加班啊閱讀 763評論 0 4