centos7.4/7.5搭建kafka1.1.0消息隊(duì)列集群(使用SASL_PLAINTEXT)

kafka增加了賬號(hào)認(rèn)證后標(biāo)志著它向企業(yè)級(jí)發(fā)展邁出了關(guān)鍵的一步败潦,在這個(gè)功能后kafka也終于有了大版本,到現(xiàn)在已經(jīng)演進(jìn)到1.1.0准脂,發(fā)展迅速以至于國(guó)內(nèi)相關(guān)實(shí)踐的資料很少劫扒,或者問(wèn)題較多,經(jīng)過(guò)一番折騰后發(fā)現(xiàn)有點(diǎn)復(fù)雜狸膏,所以把過(guò)程分享給大家沟饥,幫助大家少走彎路,主要使用SASL_PLAINTEXT 實(shí)現(xiàn)認(rèn)證。

系統(tǒng)要求:

centos7.4/7.5? jdk1.8? ?/data為數(shù)據(jù)目錄 各服務(wù)器的防火墻相互允許所有端口訪問(wèn)

服務(wù)器三臺(tái):

server1 172.16.99.35

server2 172.16.99.36

server3 172.16.99.37

下載:

wget?http://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz

解壓:

tar -zxvf kafka_2.11-1.1.0.tgz -C /usr/local/

mv?/usr/local/kafka_2.11-1.1.0? /usr/local/kafka


1.zookeeper配置

1.搭建集群

每臺(tái)服務(wù)都執(zhí)行:

mkdir -p ?/data/app/kafka/data/zookeeper

mkdir -p /data/app/logs/kafka/zookeeper

vi?/usr/local/kafka/config/zookeeper.properties

dataDir=/data/app/kafka/data/zookeeper

dataLogDir=/data/app/logs/kafka/zookeeper

# the port at which the clients will connect

clientPort=2181

# disable the per-ip limit on the number of connections since this is a non-production config

maxClientCnxns=20

tickTime=2000

initLimit=5

syncLimit=2

server.1=172.16.99.35:2888:3888

server.2=172.16.99.36:2888:3888

server.3=172.16.99.37:2888:3888

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider

requireClientAuthScheme=sasl

jaasLoginRenew=3600000


2.設(shè)置zookeeper主機(jī)id

echo 1 > /data/app/kafka/data/zookeeper/myid

注意:這個(gè)id是zookeeper的主機(jī)標(biāo)示,每個(gè)主機(jī)id不同第二臺(tái)是2 第三臺(tái)是3贤旷。

3.啟動(dòng)

逐次啟動(dòng)3臺(tái)機(jī)器的zookeeper 構(gòu)成一個(gè)集群

cd?/usr/local/kafka

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties


2.kafka集群配置

每臺(tái)服務(wù)器都需要重復(fù)以下操作

1.創(chuàng)建kafka登陸認(rèn)證文件

vi?/usr/local/kafka/config/kafka_client_jaas.conf

KafkaClient {

? org.apache.kafka.common.security.plain.PlainLoginModule required

? username="test"

? password="testpwd";

};

vi?/usr/local/kafka/config/kafka_server_jaas.conf

KafkaServer {

? org.apache.kafka.common.security.plain.PlainLoginModule required

? username="admin"

? password="adminpwd"

? user_admin="adminpwd"

? user_test="testpwd"

};

Client {

? org.apache.kafka.common.security.plain.PlainLoginModule required

? username="admin"

? password="adminpwd";

};

vi?/usr/local/kafka/config/kafka_zoo_jaas.conf

Server {

? ? ? ? org.apache.kafka.common.security.plain.PlainLoginModule required

? ? ? ? username="admin"

? ? ? ? password="adminpwd"

? ? ? ? user_admin="adminpwd";

};


2.綁定認(rèn)證文件

修改kafka各項(xiàng)sh腳本,在最后一行之前添加綁定

在/usr/local/kafka/bin/zookeeper-server-start.sh中添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_zoo_jaas.conf"

在/usr/local/kafka/bin/kafka-server-start.sh中添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_server_jaas.conf"

在/usr/local/kafka/bin/kafka-console-consumer.sh/kafka-console-producer.sh中添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_client_jaas.conf"


3.kafka添加SASL_PLAINTEXT支持

在/usr/local/kafka/config/server.properties文件最后添加:

security.inter.broker.protocol=SASL_PLAINTEXT

sasl.enabled.mechanisms=PLAIN

sasl.mechanism.inter.broker.protocol=PLAIN

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer

super.users=User:admin

auto.create.topics.enable=false

allow.everyone.if.no.acl.found=false

在/usr/local/kafka/config/producer.properties文件最后添加:

security.protocol=SASL_PLAINTEXT

sasl.mechanism=PLAIN

在/usr/local/kafka/config/consumer.properties文件最后添加:

security.protocol=SASL_PLAINTEXT

sasl.mechanism=PLAIN


4.kafka集群設(shè)置

在/usr/local/kafka/config/server.properties修改如下的值:

zookeeper.connect=172.16.99.35:2181,172.16.99.36:2181,172.16.99.37:2181

listeners=SASL_PLAINTEXT://:9092

advertised.listeners=SASL_PLAINTEXT://本機(jī)內(nèi)網(wǎng)IP:9092? (當(dāng)需要提供外網(wǎng)服務(wù)時(shí)則為本機(jī)外網(wǎng)IP,防火墻須打開外網(wǎng)IP相互訪問(wèn)9092端口)

log.dirs=/data/app/logs/kafka/kafka-logs

broker.id=0? (數(shù)字广料,每個(gè)服務(wù)都是唯一值)

5.啟動(dòng)

依次啟動(dòng)

/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

3.kafka測(cè)試

創(chuàng)建topic:

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test_topic replication-factor

查看所有topic:

/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181

創(chuàng)建有權(quán)限的消費(fèi)者

/usr/local/kafka/bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:test --operation Create --cluster kafka-cluster (consumer不包括create 會(huì)導(dǎo)致無(wú)法讀,所以需要單獨(dú)加幼驶,但producer卻會(huì)自動(dòng)加)

/usr/local/kafka/bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:test --consumer --topic test_topic --group test-consumer-group

創(chuàng)建生產(chǎn)者

/usr/local/kafka/bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 --add --allow-principal User:test --producer --topictest_topic

生產(chǎn)數(shù)據(jù)

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list 172.16.99.35:9092 --topic test_topic --producer.config=/usr/local/kafka/config/producer.properties

消費(fèi)數(shù)據(jù):

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 172.16.99.36:9092 --topic test_topic --from-beginning --consumer.config=/usr/local/kafka/config/consumer.properties??

4.kafka壓力測(cè)試

在/usr/local/kafka/bin/kafka-consumer-perf-test.sh/kafka-producer-perf-test.sh倒數(shù)第一行前添加:

export KAFKA_OPTS=" -Djava.security.auth.login.config=/usr/local/kafka/config/kafka_client_jaas.conf"

執(zhí)行壓測(cè)腳本:

/usr/local/kafka/bin/kafka-consumer-perf-test.sh --consumer.config /usr/local/kafka/config/consumer.properties --broker-list 172.16.99.35:9092,172.16.99.36:9092,172.16.99.37:9092 -messages 50000 --topic test_topic --group=test-consumer-group --threads 1

bin/kafka-producer-perf-test.sh --topic test_topic --num-records 5000000 --record-size 100 --throughput -1 --producer.config config/producer.properties --producer-props acks=1 bootstrap.servers=172.16.108.128:9092,172.16.108.139:9092,172.16.108.136:9092 buffer.memory=67108864 batch.size=8196

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艾杏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子盅藻,更是在濱河造成了極大的恐慌糜颠,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萧求,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡顶瞒,警方通過(guò)查閱死者的電腦和手機(jī)夸政,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)榴徐,“玉大人守问,你說(shuō)我怎么就攤上這事】幼剩” “怎么了耗帕?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)袱贮。 經(jīng)常有香客問(wèn)我仿便,道長(zhǎng),這世上最難降的妖魔是什么攒巍? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任嗽仪,我火速辦了婚禮,結(jié)果婚禮上柒莉,老公的妹妹穿的比我還像新娘闻坚。我一直安慰自己,他們只是感情好兢孝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布窿凤。 她就那樣靜靜地躺著,像睡著了一般跨蟹。 火紅的嫁衣襯著肌膚如雪雳殊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天喷市,我揣著相機(jī)與錄音相种,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寝并,可吹牛的內(nèi)容都是我干的箫措。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼衬潦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼斤蔓!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起镀岛,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弦牡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后漂羊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驾锰,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年走越,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了椭豫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旨指,死狀恐怖赏酥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谆构,我是刑警寧澤裸扶,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站搬素,受9級(jí)特大地震影響呵晨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蔗蹋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一何荚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猪杭,春花似錦餐塘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蜂筹,卻和暖如春需纳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背艺挪。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工不翩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓口蝠,卻偏偏與公主長(zhǎng)得像器钟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妙蔗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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

  • ** 今天看了一下kafka官網(wǎng)傲霸,嘗試著在自己電腦上安裝和配置,然后學(xué)一下官方document眉反。** Introd...
    RainChang閱讀 5,002評(píng)論 1 30
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理昙啄,服務(wù)發(fā)現(xiàn),斷路器寸五,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 本文轉(zhuǎn)載自http://dataunion.org/?p=9307 背景介紹Kafka簡(jiǎn)介Kafka是一種分布式的...
    Bottle丶Fish閱讀 5,469評(píng)論 0 34
  • Kafka入門經(jīng)典教程-Kafka-about云開發(fā) http://www.aboutyun.com/threa...
    葡萄喃喃囈語(yǔ)閱讀 10,825評(píng)論 4 54
  • 不知道你記不記得我唱的第一首歌梳凛,而現(xiàn)在我要給你最后一首歌 你說(shuō)相遇只是一個(gè)過(guò)錯(cuò),我說(shuō)那你為什么會(huì)想我 你說(shuō)世界是一...
    芷顏閱讀 389評(píng)論 1 2