1
有所為,有所不為。
但是,具體做哪些,為什么做?需要心里有個明確的目標。
2
有天,在一朋友的朋友圈里討論了 docker 如何管理自己的鏡像?
大體有以下幾個方法:
- 本地管理;(此朋友 images & container 均找不到了)
- Dockerfile;
- 三方 images & 三方托管;
- docker compose;
此文不比哪種方式更好,列出各種方式的原因是想說明每個人在能往同一個結果的途徑是一樣的,本人也鼓勵不一樣,但是我希望大家明白自己選擇途徑的理由是充分的,而不是人云亦云。
阿里云服務優(yōu)惠碼
阿里云雙11服務器大減價
參加我的團更享活動價上再享5折優(yōu)惠,預購從速!
3
對于各自開發(fā)環(huán)境的選擇,開發(fā)測試中,本人都愿意自己編譯、安裝與配置。但是生產環(huán)境會傾向于官方發(fā)布的 release 版本。對于 Kafka 的深入學習過程,本人依舊是選擇自行編譯安裝,盡管 Kafka 的編譯過程無需太多人為處理。
4
以下是本人對 Kafka 編譯安裝過程的一點記錄:
- 下載源碼
wget http://mirrors.hust.edu.cn/apache/kafka/1.1.0/kafka-1.1.0-src.tgz
- 編譯
Kafka 核心是基于 scala 編寫的,并運行于 JVM 中。Kafka 的編譯也很簡單,因為其是基于 gradle 管理的。編譯 Kafka 之前未有接觸,查了一下發(fā)現只需要簡單的 gradle 就可以執(zhí)行了。
# 解壓源文件
tar xvf kafka-1.1.0-src.tgz
# 進入源碼目錄并開始編譯
cd kafka-1.1.0-src
gradle
滿心歡喜,事實上,如果你以前沒有使用過 gradle 命令,會提示如下:
bash: gradle: command not found
現在,你不得不轉去先安裝 gradle:
wget https://downloads.gradle.org/distributions/gradle-4.8.1-all.zip
mkdir /opt/gradle
unzip -d /opt/gradle/ gradle-4.8.1-all.zip
# 配置環(huán)境
vim /etc/profile
export GRADLE_HOME=/opt/gradle/gradle-4.5.1
export PATH=$PATH:GRADLE_HOME/bin
source /etc/profile
安裝完 gradle 后,執(zhí)行 gradle。遺憾的時,如果你之前沒有裝 java 環(huán)境,你還需要去安裝 java 環(huán)境。
# 編譯
gradle
# 執(zhí)行完后,會生成 gradlew 文件,打包
./gradlew --info releaseTarGzAll -x signArchives
編譯打包后,會在 core/build/distributions/ 文件夾中生成 kafka_2.11-1.1.0.tgz 文件,此文件與 github 或者官方網站上下載的文件一致。如果你在編譯中遇到了問題請繼續(xù)往下看。
5
- 有說要手動安裝 scala 的,但實際上 gradle 會下載依賴文件。所以如果沒有意外,不需要手動安裝配置 scala;
- 如果進程失敗退出并提示:
Process 'Gradle Worker Daemon 1' finished with non-zero exit value 137
這是因為執(zhí)行過程中進程 gradle 進程未能退出:
ps aux | grep "gralde"
# 找到后并終止進程
kill xxxx
6
編譯、運行 kafka-manager
wget https://github.com/yahoo/kafka-manager/archive/1.3.3.18.tar.gz
tar zxvf kafka-manager-1.3.3.18.tar.gz
cd kafka-manager-1.3.3.18/
./sbt clean dist
整個過程會很慢,幾乎沒有坑,只是下載過程會很慢。
# 修改配置后運行
./bin/kafka-manager ./conf/application.conf
到此,Kafka 的編譯已經完成,安裝就不再詳述。