JDK ZOOKEEPER KAFKA安裝

JDK17下載安裝

mkdir -p /usr/local/develop

cd /usr/local/develop

將下載的包上傳服務器指定路徑

解壓文件

tar -zxvf jdk-17.0.14_linux-x64_bin.tar.gz -C /usr/local/develop/

修改文件夾名

mv /usr/local/develop/jdk-17.0.14 /usr/local/develop/java17

配置環境變量

vim /etc/profile
?

export JAVA_HOME=/usr/local/develop/17

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib

保存之后讓環境變量生效

source /etc/profile

KAFKA下載安裝

kafka.apache.org

將下載的包放到/usr/local/develop路徑下

解壓

tar -xvf kafka_2.13-3.9.0.tgz -C /usr/local/develop/

Kafka 的版本命名方式 kafka_2.13-3.9.0 可以拆分成兩部分:

  1. 2.13:指的是 Scala 版本
  2. 3.9.0:指的是 Kafka 的版本號

cd kafka_2.13-3.9.0

命令區別

在解壓JDK和KAFKA時候

JDK用了tar -zxvf? 而KAFKA用了 tar -xvf的原因

Kafka啟動方式

kafka基于Scala開發,需要Java8+環境

有兩種啟動方式

1種是基于zookeeper? 另外一種是基于KRaft(用于取代Zookeeper)

基于ZOOKEEPER啟動

(zookeeper也是java開發的)

進去kafka的bin目錄

cd /usr/local/develop/kafka_2.13-3.9.0/bin

先啟動zookeeper 并指定Zookeeper的配置文件? 即使不指定應該也是用的這個配置文件

nohup ./zookeeper-server-start.sh ../config/zookeeper.properties > /usr/local/develop/zookeeper.log 2>&1 &

啟動kafka

nohup ./kafka-server-start.sh ../config/server.properties > /usr/local/develop/zookeeper.log 2>&1 &

關閉kafka

./kafka-server-stop.sh

關閉zookeeper

./zookeeper-server-stop.sh

可以通過

netstat -nlpt ? 查看使用的端口

基于KRaft啟動(無需zookeeper)

cd /usr/local/develop/kafka_2.13-3.9.0/bin

生成 Cluster UUID(集群ID)

./kafka-storage.sh random-uuid? ? ? ? ? ? ? 可以多次執行? 每次生成的UUID不同

格式化存儲?format -t? 后面是集群ID 然后指定配置

./kafka-storage.sh format -t zvalKa2rSxmM_NUp6hOxxQ -c ../config/kraft/server.properties &
啟動 Kafka

nohup ./kafka-server-start.sh ../config/kraft/server.properties > /usr/local/develop/zookeeper.log 2>&1 &

關閉

./kafka-server-stop.sh
?

解釋:事實上UUID可以隨意? ?但是當第一次啟動之后 在/tmp/kraft-combined-logs 中已經將zvalKa2rSxmM_NUp6hOxxQ集群ID寫入? ?可以

rm -rf?/tmp/kraft-combined-logs? ?這樣的話? 集群ID是123也可以啟動

./kafka-storage.sh format -t 123 -c ../config/kraft/server.properties &

使用獨立zookerper

kafka自帶了zookerper

zookeeper下載安裝

都一樣? 隨便點擊下載? ?或者用wget下載

cd /usr/local/develop

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz

解壓

tar -zxvf apache-zookeeper-3.9.3-bin.tar.gz -C /usr/local/develop/

cd apache-zookeeper-3.9.3-bin

配置zookeeper

cd /usr/local/develop/apache-zookeeper-3.9.3-bin/conf

cp zoo_sample.cfg zoo.cfg

啟動zookeeper

./zkServer.sh start? ? ? ? ? ? ? ? ? ? 默認就會用zoo.cfg的配置

./zkServer.sh stop? ? ?關閉zookeeper

netstat -nlpt? ? ? ? ? ?查看使用的端口和pid

zookeeper會啟用一個8080端口? 為避免端口沖突? ?修改下配置

?ZooKeeper的8080端口主要用于管理界面和REST API服務?。ZooKeeper的默認管理端口是8080,通過這個端口可以訪問ZooKeeper的管理界面和REST API,從而進行配置管理、監控和調試等操作?

kill之后重啟zookeeper? ? 或者在zookeeper的bin目錄下執行? ?./zkServer.sh stop

?ZooKeeper的8080端口主要用于管理界面和REST API服務?。ZooKeeper的默認管理端口是8080,通過這個端口可以訪問ZooKeeper的管理界面和REST API,從而進行配置管理、監控和調試等操作?

不了解之前? 安全組還是關閉的好

用獨立zookeeper啟動kafka

先啟動zookeeper

nohup/usr/local/develop/apache-zookeeper-3.9.3-bin/bin/zkServer.sh start

啟動kafka

nohup /usr/local/develop/kafka_2.13-3.9.0/bin/kafka-server-start.sh /usr/local/develop/kafka_2.13-3.9.0/config/server.properties > /usr/local/develop/zookeeper.log 2>&1? ? ? ?后面加&? 不加是前臺啟動

關閉kafka

/usr/local/develop/kafka_2.13-3.9.0/bin/kafka-server-start.sh

關閉zookeeper

ps -ef|grep?zoo

或者

netstat -nlpt

然后kill?

通過Docker安裝kafka

1.安裝docker

查看是否安裝過docker

yum list installed|grep docker

卸載docker

sudo yum remove docker \
? ? ? ? ? ? ? ? ? docker-client \
? ? ? ? ? ? ? ? ? docker-client-latest \
? ? ? ? ? ? ? ? ? docker-common \
? ? ? ? ? ? ? ? ? docker-latest \
? ? ? ? ? ? ? ? ? docker-latest-logrotate \
? ? ? ? ? ? ? ? ? docker-logrotate \
? ? ? ? ? ? ? ? ? docker-engine

安裝最新版本docker

設置docker的下載鏡像? 這個適合國外,國內可能有點慢

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
?

國內用這個
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

上面兩個命令-->/etc/yum.repos.d/ 目錄中新增一個 .repo 配置文件,讓 yum 能夠從指定的 Docker 倉庫下載軟件包。? ??docker-ce.repo作用是指定去哪里下載鏡像? 鏡像源配置文件

/etc/yum.repos.d

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo systemctl start docker

設置docker開機自啟

sudo systemctl enable docker

配置docker鏡像加速器

vim /etc/docker/daemon.json

{
? "registry-mirrors": [
? ? "https://dockerproxy.com",
? ? "https://mirror.baidubce.com",
? ? "https://docker.m.daocloud.io",
? ? "https://docker.nju.edu.cn",
? ? "https://docker.mirrors.sjtug.sjtu.edu.cn"
? ]
}
?

加載配置

sudo systemctl daemon-reload

如果無法啟動 配置vim /etc/docker/daemon.json的時候格式有誤

sudo systemctl restart docker


systemctl status docker? ?查看docker狀態

systemctl stop docker? ?停止docker

也可以使用

service docker start? ?啟動

service docker stop? ?停止

service docker restart? 重啟

2.docker安裝kafka

docker search kafka

可以查看kafka文檔

也可以上docker查看

我這里就按kafka官方推薦的

拉取鏡像也可以直接run? 沒有就會自動下載

docker pull apache/kafka-native:3.9.0

先要啟動zookeeper?

docker run -d --name dckafka -p 9092:9092 apache/kafka:3.9.0

Docker配置Kafka

以上方式啟動kafka的話,用于本地測試,外部無法連接

https://hub.docker.com/r/apache/kafka

Docker容器的kafka三種配置方式,

1.就是默認配置 (因沒有配置,外部無法連接,只有本地測試可用)

2.文件輸入:提供一個本地kafka屬性配置文件,替換docker容器中kafka的默認配置

3.環境變量:通過-e 變量? 在啟動時候覆蓋默認配置中的對應屬性值

在kafka的docker容器內部?/etc/kafka/docker? 下有個server.properties

需要將這個文件放到宿主機

mkdir -p /usr/local/develop/docker/kafka/data

創建Topic

這里暫時用傳統方式啟動zookeeper和kafka? ? 用kafka自帶的zookeeper

進去kafka的bin目錄

cd /usr/local/develop/kafka_2.13-3.9.0/bin

先啟動zookeeper

nohup ./zookeeper-server-start.sh ../config/zookeeper.properties > /usr/local/develop/zookeeper.log 2>&1 &

啟動kafka

nohup ./kafka-server-start.sh ../config/server.properties > /usr/local/develop/zookeeper.log 2>&1 &

# 1. 創建主題??--bootstrap-server localhost:9092指要連接的kafka服務器
./kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

./kafka-topics.sh --create --topic quickstart-events2 --partitions 2 --bootstrap-server localhost:9092? ? 指定分區數量
修改分區數量(分區數量只能加 不能減 (刪了重新創建))

./kafka-topics.sh --alter --topic quickstart-events2 --partitions 5 --bootstrap-server localhost:9092

# 2. 列出所有主題
./kafka-topics.sh --list --bootstrap-server localhost:9092

# 3. 顯示主題詳細信息
./kafka-topics.sh --describe --topic quickstart-events2 --bootstrap-server localhost:9092

# 4. 刪除主題
./kafka-topics.sh --delete --topic quickstart-events --bootstrap-server localhost:9092

Kafka和EMQX的區別

生產者消費者通信(發送接收)

示例:

創建Topic

./kafka-topics.sh --create --topic topic-0 --bootstrap-server localhost:9092

生產者發送消息

./kafka-console-producer.sh --topic topic-0 --bootstrap-server localhost:9092? 回車后建立生產者的連接通道,消息就會被發送到 Kafka topic-0 主題中。

消費者讀消息(拉取)??--from-beginning 消費拉取該topic所有歷史消息 (因此每次啟動都可以重復消費)

./kafka-console-consumer.sh --topic topic-0 --from-beginning --bootstrap-server localhost:9092

沒有--from-beginning 只會消費(拉取)新消息?消費者啟動之后生產者發送的消息

./kafka-console-consumer.sh --topic topic-0 --bootstrap-server localhost:9092
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71535.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71535.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71535.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高考數學。。。

2024上 具體來說,直線的參數方程可以寫為: x1t y?t z1t 二、簡答題(本大題共5小題,每小題7分,共35分。) 12.數學學習評價不僅要關注結果評價,也要關注過程評價。簡要說明過程評價應關注哪幾個方面。…

C# 實現鼠標軌跡錄制與回放自動化功能(附源碼)

在軟件自動化測試或者重復性辦公任務中,鼠標操作的自動化可以大大減少人工干預,提高工作效率。這里將詳細介紹如何使用 C# 實現鼠標軌跡的錄制與回放功能,代碼結構清晰,具有較強的擴展性。 引用 NuGet 包 在開發這個功能時&…

Nacos 核心功能實戰筆記(超詳細)

Nacos 核心功能實戰筆記 一、Nacos 簡介 1. 是什么? 全稱:Nacos Naming and Configuration Service定位:阿里巴巴開源的 動態服務發現、配置管理、服務管理平臺核心功能:服務注冊與發現 統一配置管理 服務健康監測適用場景&…

安裝remixd,在VScode創建hardhat

在終端,以管理員身份,cmd 需要科學上網 npm install -g remix-project/remixd 在vscode插件中,安裝solidity插件,是暗灰色那款 1.將nodeJs的版本升級至18以上 2.在vscode打開一個新的文件,在終端輸入 npx hardhat 3.…

unity pico開發 四 物體交互 抓取 交互層級

文章目錄 手部設置物體交互物體抓取添加抓取抓取三種類型抓取點偏移抓取事件抓取時不讓物體吸附到手部 射線抓取交互層級 手部設置 為手部(LeftHandController)添加XRDirInteractor腳本 并添加一個球形碰撞盒,勾選isTrigger,調整大小為0.1 …

CyberRT(apollo) 定時器模塊簡述及bug分析

timer 模塊 timer的定義,cyberrt中timer模塊用于設置定時器任務,字面意思,設置設置定時周期及出發頻次(周期 or oneshot),到達指定時間時間觸發callback time wheel 時鐘節拍輪,常見的定時器設計&#x…

java八股文之消息中間件

1.RabbitMQ如何保證消息不丟失 開啟生產者確認機制,確保生產者的消息能到達隊列開啟持久化功能,確保消息未消費前在隊列中不會丟失(交換機,隊列,消息都需要開啟持久化功能)開啟消費者確認機制為auto,由spr…

Win7重裝不翻車!ISO鏡像安全下載渠道+BIOS設置避雷手冊

一、寫在前面:為什么你需要這份教程? 當電腦頻繁藍屏、系統崩潰甚至無法開機時,重裝系統可能是最后的救命稻草。但市面上的教程往往存在三大痛點: ?? 鏡像來源不明導致系統被植入后門 ?? 啟動盤制作失敗反復折騰 ?? 操作失…

大學至今的反思與總結

現在是2025年的3月5日,我大三下學期。 自大學伊始,我便以考研作為自己的目標,有時還會做自己考研上岸頭部985,211,offer如潮水般涌來的美夢。 但是我卻忽略了一點,即便我早早下定了決心去考研,但并沒有早…

SpringBoot 全局異常處理

文章目錄 異常處理全局異常處理(推薦)局部異常處理高級技巧設置返回狀態碼處理404異常異常處理 全局異常處理(推薦) 創建一個全局異常處理類,使用 @RestControllerAdvice 注解標記。 在方法上使用 @ExceptionHandler 聲明當前方法可處理的異常類型。當系統發生異常時,…

【四.RAG技術與應用】【11.阿里云百煉應用(上):RAG在云端的實踐】

一、為什么需要RAG?大模型的“知識困境”與破局之道 大模型雖然“博學”,但它的知識庫存在兩個致命短板: 缺乏私有知識:比如企業內部的產品手冊、客戶數據、行業報告等;知識更新滯后:大模型的訓練數據往往停留在某個時間點,無法實時獲取最新信息(比如今天的股票行情或…

使用wifi連接手機adb進行調試|不使用數據線adb調試手機|找應用錯誤日志和操作日志

手機在開發者選項里要開啟無線調試 在手機設置中查看WiFi的IP地址 設置 -> WLAN -> 已連接的WiFi -> IP地址 使用手機的IP地址連接 adb connect 192.168.1.12:xxxxx 檢查連接狀態 adb devices 斷開特定設備 adb disconnect 192.168.x.x:xxxxx 斷開所有設備 …

mapbox高階,結合threejs(threebox)添加三維球體

????? 主頁: gis分享者 ????? 感謝各位大佬 點贊?? 收藏? 留言?? 加關注?! ????? 收錄于專欄:mapbox 從入門到精通 文章目錄 一、??前言1.1 ??mapboxgl.Map 地圖對象1.2 ??mapboxgl.Map style屬性1.3 ??threebox Sphere靜態對象二、??使用t…

游戲引擎學習第140天

回顧并為今天的內容做準備 目前代碼的進展到了聲音混音的部分。昨天我詳細解釋了聲音的處理方式,聲音在技術上是一個非常特別的存在,但在游戲中進行聲音混音的需求其實相對簡單明了,所以今天的任務應該不會太具挑戰性。 今天我們會編寫一個…

golang并發編程如何學習

《掌握 Golang 并發編程的通關秘籍》 在當今的編程世界中,Golang 并發編程正以其獨特的魅力和強大的能力吸引著眾多開發者。然而,對于許多小伙伴來說,如何學好這門技術卻成了一個頭疼的問題。別擔心,今天就讓我來為大家揭開 Gola…

SpringMVC學習(controller層加載控制與(業務、功能)bean加載控制、Web容器初始化配置類)(3)

目錄 一、SpringMVC、Spring的bean加載控制。 &#xff08;1&#xff09;實際開發的包結構層次。 &#xff08;2&#xff09;如何"精準"控制兩個容器分別加載各自bean。(分析) <1>SpringMVC相關bean加載控制。(方法) <2>Spring相關bean加載控制。(方法) …

fastapi+mysql實現增刪改查

說明&#xff1a; 我計劃用python的fastapi框架&#xff0c;實現操作MySQL數據庫的表&#xff0c;實現增刪改查的操作&#xff0c;并且在postman里面測試 step1: 安裝數據庫依賴 pip install fastapi uvicorn pymysqlstep2:C:\Users\Administrator\PycharmProjects\FastAPIPro…

Linux系統之配置HAProxy負載均衡服務器

Linux系統之配置HAProxy負載均衡服務器 前言一、HAProxy介紹1.1 HAProxy簡介1.2 主要特點1.3 使用場景二、本次實踐介紹2.1 本次實踐簡介2.2 本次實踐環境規劃三、部署兩臺web服務器3.1 運行兩個Docker容器3.2 編輯測試文件3.3 訪問測試四、安裝HAProxy4.1 更新系統軟件源4.2 安…

CS144 Lab Checkpoint 2: the TCP receiver

Overview TCPReceiver 從對等的sender接收消息&#xff0c;使用 receive() 方法&#xff0c;然后調用 Reassembler() 方法&#xff0c;后者寫入 ByteStream 中 然后應用程序從 ByteSteam 中讀取。 同時&#xff0c;TCPReceiver 還會通過 send() 方法給sender發送消息&#xff…

Spring Boot 3.x 核心注解詳解與最佳實踐

Spring Boot 3.x 核心注解詳解與最佳實踐 前言 隨著Spring Boot 3.x的正式發布&#xff0c;這個基于Spring Framework 6的里程碑版本帶來了諸多新特性。本文將深入剖析Spring Boot 3.x的核心注解體系&#xff0c;結合代碼示例講解其作用及使用場景&#xff0c;助您快速掌握新…