
文章插圖
kafka快速實(shí)戰(zhàn)與基本原理詳解背景Kafka是最初由Linkedin公司開(kāi)發(fā),是一個(gè)分布式、支持分區(qū)的(partition)、多副本的(replica),基于zookeeper協(xié) 調(diào)的分布式消息系統(tǒng),它的最大的特性就是可以實(shí)時(shí)地處理大量數(shù)據(jù)以滿(mǎn)足各種需求場(chǎng)景:比如基于hadoop的批處理系統(tǒng) 統(tǒng)、低延遲的實(shí)時(shí)系統(tǒng)、Storm/Spark流式處理引擎,web/nginx日志、訪問(wèn)日志,消息服務(wù)等等,用scala語(yǔ)言編寫(xiě), Linkedin于2010年貢獻(xiàn)給了Apache基金會(huì)并成為頂級(jí)開(kāi)源 項(xiàng)目 。
Kafka基本概念kafka是一個(gè)分布式的,分區(qū)的消息(官方稱(chēng)之為commit log)服務(wù) 。它提供一個(gè)消息系統(tǒng)應(yīng)該具備的功能,但是確有著獨(dú)特的設(shè)計(jì) 。可以這樣來(lái)說(shuō),Kafka借鑒了JMS規(guī)范的思想,但是確并沒(méi)有完全遵循JMS規(guī)范 。
首先,讓我們來(lái)看一下基礎(chǔ)的消息(Message)相關(guān)術(shù)語(yǔ)
名稱(chēng)解釋Broker消息中間件處理節(jié)點(diǎn),一個(gè)Kafka節(jié)點(diǎn)就是一個(gè)broker,一個(gè)或者多個(gè)Broker可以組成一個(gè)Kafka集群TopicKafka根據(jù)topic對(duì)消息進(jìn)行歸類(lèi),發(fā)布到Kafka集群的每條消息都需要指定一個(gè)topicProducer消息生產(chǎn)者,向Broker發(fā)送消息的客戶(hù)端Consumer消息消費(fèi)者,從Broker讀取消息的客戶(hù)端ConsumerGroup每個(gè)Consumer屬于一個(gè)特定的Consumer Group,一條消息可以被多個(gè)不同的Consumer Group消費(fèi),但是一個(gè)Consumer Group中只能有一個(gè)Consumer能夠消費(fèi)該消息Partition物理上的概念,一個(gè)topic可以分為多個(gè)partition,每個(gè)partition內(nèi)部消息是有序的因此,從一個(gè)較高的層面上來(lái)看,producer通過(guò)網(wǎng)絡(luò)發(fā)送消息到Kafka集群,然后consumer來(lái)進(jìn)行消費(fèi),如下圖:
服務(wù)端(brokers)和客戶(hù)端(producer、consumer)之間通信通過(guò)TCP協(xié)議來(lái)完成.
kafka基本使用安裝前的環(huán)境準(zhǔn)備由于Kafka是用Scala語(yǔ)言開(kāi)發(fā)的,運(yùn)行在JVM上,因此在安裝Kafka之前需要先安裝JDK 。
yum install java-1.8.0-openjdk* -y
kafka依賴(lài)zookeeper,所以需要先安裝zookeeper
wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
cd apache-zookeeper-3.5.8-bin
cp conf/zoo_sample.cfg conf/zoo.cfg # 啟動(dòng)zookeeper bin/zkServer.sh
start bin/zkCli.sh
ls / #查看zk的根目錄相關(guān)節(jié)點(diǎn)
第一步:下載安裝包
下載2.4.1 release版本,并解壓:
wgethttps://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.11-2.4.1.tgz # 2.11是scala的版本,2.4.1是kafka的版本
tar -xzf kafka_2.11-2.4.1.tgz
cd kafka_2.11-2.4.1
第二步:修改配置
修改配置文件config/server.properties:
#broker.id屬性在kafka集群中必須要是唯一 broker.id=0 #kafka部署的機(jī)器ip和提供服務(wù)的端口號(hào) listeners=PLAINTEXT://192.168.65.60:9092 #kafka的消息存儲(chǔ)文件 log.dir=/usr/local/data/kafka-logs #kafka連接zookeeper的地址 zookeeper.connect=192.168.65.60:2181
第三步:?jiǎn)?dòng)服務(wù)現(xiàn)在來(lái)啟動(dòng)kafka服務(wù):
啟動(dòng)腳本語(yǔ)法:kafka-server-start.sh [-daemon] server.properties
可以看到,server.properties的配置路徑是一個(gè)強(qiáng)制的參數(shù),-daemon表示以后臺(tái)進(jìn)程運(yùn)行,否則ssh客戶(hù)端退出后,就會(huì)停止服務(wù) 。(注意,在啟動(dòng)kafka時(shí)會(huì)使用linux主機(jī)名關(guān)聯(lián)的ip地址,所以需要把主機(jī)名和linux的ip映射配置到本地host里,用vim /etc/hosts)
# 啟動(dòng)kafka,運(yùn)行日志在logs目錄的server.log文件里
bin/kafka-server-start.sh -daemon config/server.properties
#后臺(tái)啟動(dòng),不會(huì)打印日志到控制臺(tái) 或者用
bin/kafka-server-start.sh config/server.properties & # 我們進(jìn)入zookeeper目錄通過(guò)zookeeper客戶(hù)端查看下zookeeper的目錄樹(shù) bin/zkCli.sh ls / #查看zk的根目錄kafka相關(guān)節(jié)點(diǎn)
ls /brokers/ids #查看kafka節(jié)點(diǎn) # 停止kafka bin/kafka-server-stop.sh
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專(zhuān)業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 一般的玉手鐲賣(mài)多少錢(qián):翡翠項(xiàng)鏈編織繩,好的項(xiàng)鏈要配獨(dú)一無(wú)二的繩子
- 一般的玉手鐲賣(mài)多少錢(qián):翡翠項(xiàng)鏈鑒定機(jī)構(gòu),專(zhuān)業(yè)的就是讓人信賴(lài)
- 2022年天貓年貨節(jié)紅包入口在哪里 天貓年貨節(jié)紅包口令怎么設(shè)置的
- 2022大連泉水疫情源頭在哪 大連疫情活動(dòng)軌跡是怎樣的
- 蘇打水是碳酸飲料嗎
- 文玩核桃怎么清洗
- 坐飛機(jī)的流程步驟有哪些?
- 原唱者王琪攜手許歌淳主演院線電影 可可托海的牧羊人原唱
- 鏡子是用什么材料做的
- 筋膜槍怎么使用
