日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
牢記這三種方法!即便沒有Zookeeper也能運(yùn)行Kafka

牢記這三種方法!即便沒有Zookeeper也能運(yùn)行Kafka

原創(chuàng)
作者: 崔皓 2022-01-11 08:00:00

云計算

Kafka 從 Kafka 2.8 開始,在沒有 Zookeeper 的情況下也可以運(yùn)行 Kafka 集群。本文將介紹三種方法,它們可以在使用容器單節(jié)點(diǎn)集群的情況下運(yùn)行Kafka。

???

【51CTO.com原創(chuàng)稿件】從 Kafka 2.8 開始,在沒有 Zookeeper 的情況下也可以運(yùn)行 Kafka 集群。本文將介紹三種方法,它們可以在使用容器單節(jié)點(diǎn)集群的情況下運(yùn)行Kafka。

Apache Zookeeper作為Kafka的依賴項一直用來管理Apache Kafka的元數(shù)據(jù)。值得慶幸的是從Kafka 2.8 版本開始,就可以在沒有 Zookeeper 的情況下運(yùn)行 Kafka 集群了。下面就給大家介紹使用容器單節(jié)點(diǎn)集群的三種簡單方法。

Control plane(控制面)和data plane(數(shù)據(jù)面)

Apache Kafka 為其集群實(shí)現(xiàn)了獨(dú)立的control plane(控制面)和data plane(數(shù)據(jù)面)。Control plane用來管理集群,跟蹤哪些brokers(代理)處于活動狀態(tài),并在set(集合)更改時采取對應(yīng)的行動。同時,data plane(數(shù)據(jù)面)需要處理producer(生產(chǎn)者)和consumer(消費(fèi)者)及其兩者產(chǎn)生的記錄信息。在之前的Kafka 版本中,Zookeeper 是實(shí)現(xiàn)Control plane功能的主要集群組件。

經(jīng)過幾年的努力,Kafka實(shí)現(xiàn)了Control plane的第一版功能,我們把此次更新稱為KIP-500。其中 Apache Kafka Raft(也稱為 KRaft)是為取代 Zookeeper 而引入的新共識協(xié)議。brokers可以作為仲裁控制器的角色來管理集群Control plane(控制面)。此更改簡化了集群部署、監(jiān)控和管理等功能。新的 KRaft 控制器可以在 Apache Kafka 2.8中體驗(yàn)到。

容器化單節(jié)點(diǎn)

Apache Kafka的強(qiáng)項是消息處理機(jī)制的水平擴(kuò)展和管理高吞吐量的消息,這也是一直推動Kafka發(fā)展的源動力。正因?yàn)槿绱?,需要在生產(chǎn)環(huán)境的Kafka集群中使用多個broker完成上述功能。為了簡單和快速入門今天的知識點(diǎn),這里會從單節(jié)點(diǎn)集群切入給大家介紹Kafaka是如何進(jìn)行進(jìn)群管理的。

本文會使用Strimzi容器來包含所需要的應(yīng)用環(huán)境。Strimzi 是Cloud Native Computing Foundation項目成員,它讓Apache Kafka在Kubernetes 運(yùn)行起來更加從容,同時還提供了一套成熟的操作集合和容器鏡像。

在本文中,我們將通過Quay Container Registry 發(fā)布和應(yīng)用 Apache Kafka 2.8.1 鏡像。

Docker 或 Podman

首先需要在同一實(shí)例中運(yùn)行具有代理和控制器角色的單個容器。安裝Docker或Podman并執(zhí)行以下命令:

docker run -it --name kafka-zkless -p 9092:9092 -e LOG_DIR=/tmp/logs quay.io/strimzi/kafka:latest-kafka-2.8.1-amd64 /bin/sh -c 'export CLUSTER_ID=$(bin/kafka-storage.sh random-uuid) && bin/kafka-storage.sh format -t $CLUSTER_ID -c config/kraft/server.properties && bin/kafka-server-start.sh config/kraft/server.properties' 

上面的命令啟動一個名為“kafka-zkless”的容器并暴露Kafka的端口 9092。我們覆蓋entry point(入口點(diǎn))的信息,這里包括三個方面的工作。

第一、設(shè)置環(huán)境變量,通過UUID設(shè)置集群ID。

第二、通過執(zhí)行`kafka-storage.sh`腳本來格式化存儲目錄。

第三、使用 KRaft 配置啟動 Kafka 服務(wù)器。

同時,可以使用標(biāo)準(zhǔn)的 Kafka 工具(如kcat:以前稱為 kafkacat)連接到broker生成和使用相關(guān)記錄。

Docker Compose

您可以使用Compose 規(guī)范來定義您的組件。如圖 1 所示, docker-compose yaml 文件的示例:

???

圖1

從圖中可以看出通過container_name定義容器名稱,image定義容器鏡像,其中command的部分是要執(zhí)行的命令。由于該命令過長將其分成兩行解釋(實(shí)際上是一行,這里人為加入了回車為的是方便大家閱讀),上面的一行和Docker中的命令一致,包括集群ID定義、格式化存儲目錄以及啟動Kafaka服務(wù)器的部分。下面一行主要是重寫了advertised中的listeners、security.protocol.map 以及l(fā)isteners的信息。接著就是定義ports 端口為9092,在environment中定義了需要在命令行中重寫的三類信息:KAFKA_ADVERTISED_LISTENERS 對應(yīng)advertised中的listeners;KAFKA_LISTENER_SECURITY_PROTOCOL_MAP對應(yīng)security.protocol.map;KAFKA_LISTENERS對應(yīng)listeners的信息。

可以通過如下命令執(zhí)行上述示例:

docker-compose up -d 

本例會公開主機(jī)9092端口,如果需要在更廣泛的組合部署中訪問它,可以將其修改為kafka:29092,避免與其他端口沖突。

Kubernetes 部署

如果習(xí)慣使用Kubernetes,您可以如圖2 所示的部署描述:

???

圖2

如圖2 所示,我們關(guān)注containers節(jié)點(diǎn)下面的內(nèi)容,容器的名字為zkless-kafka,通過image定義了容器鏡像,在command中定義容器啟動時候的命令。

和Docker一樣由于該命令過長將其分成兩行解釋,上面的一行依舊包括集群ID定義、格式化存儲目錄以及啟動Kafaka服務(wù)器的部分。下面一行只定義了advertised的listeners 的信息,這個信息是從env(環(huán)境變量)中的KAFKA_ADVERTISED_LISTENERS 對應(yīng)的value中讀取。

可以通過如下命令執(zhí)行上面的文件:

kubectl apply -f kubernetes.yaml 

執(zhí)行之后會對鏡像進(jìn)行部署,將通過使用zkless-kafka-bootstrap主機(jī)名公開引導(dǎo)服務(wù)器。同時會對部署服務(wù)器所在的當(dāng)前命名空間的訪問限制。此時就可以和其他advertised listeners(廣播監(jiān)聽者)一樣獲取你想要的消息了。

概括

本文簡要介紹了 Apache Kafka 新Control plane(控制面)的實(shí)現(xiàn)。由于上一個版本的Kafaka完成集群控制的功能,借此可以使用功能強(qiáng)大的 Zookeeperless Kafka 集群。我們回顧了使用容器鏡像部署單節(jié)點(diǎn)集群的三種簡單方法:執(zhí)行簡單的 Docker 或 podman 命令、執(zhí)行 docker-compose 文件以及在 Kubernetes 上部署運(yùn)行中的 pod。

作者簡介

崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗(yàn),10年分布式架構(gòu)經(jīng)驗(yàn)。曾任惠普技術(shù)專家。樂于分享,撰寫了很多熱門技術(shù)文章,閱讀量超過60萬?!斗植际郊軜?gòu)原理與實(shí)踐》作者。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】


名稱欄目:牢記這三種方法!即便沒有Zookeeper也能運(yùn)行Kafka
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/cciojpg.html