一、基本概念
不加配置文件啟動
直接執行啟動命令,使用軟件自帶的默認參數。
方便、快速,適合測試環境。
缺點:靈活性差、配置不可控、不安全。
redis-server zookeeper-server-start.sh kafka-server-start.sh
指定配置文件啟動
啟動時加載外部配置文件,覆蓋默認參數。
靈活可控,適合生產環境。
redis-server /etc/redis/redis.conf zookeeper-server-start.sh /usr/local/zookeeper/conf/zoo.cfg kafka-server-start.sh /usr/local/kafka/config/server.properties
二、Redis 示例
不加配置文件
端口:6379
無密碼(安全性差)
數據目錄:當前目錄
日志輸出:終端
指定配置文件(redis.conf)
例如下面的是在redis.conf的配置 port 6380 requirepass mypassword dir /var/lib/redis logfile /var/log/redis.log
端口改為 6380
啟用密碼
mypassword
數據文件存儲在
/var/lib/redis
日志寫入
/var/log/redis.log
三、ZooKeeper 示例
不加配置文件
默認數據目錄
/tmp/zookeeper
客戶端端口:2181
重啟可能丟數據(因為 /tmp 會清理)
指定配置文件(zoo.cfg)
例如這個是在zoo.cfg下寫的配置 dataDir=/usr/local/zookeeper/data clientPort=2181 tickTime=2000 initLimit=5 syncLimit=2
數據保存在固定目錄
/usr/local/zookeeper/data
端口仍是 2181(可修改)
tickTime、initLimit、syncLimit 用于集群穩定性配置
四、Kafka 示例
不加配置文件
很少直接這樣做,因為 Kafka 必須依賴配置文件才能運行(尤其是要指定 ZooKeeper 或 KRaft 模式)。
默認配置在
config/server.properties
指定配置文件(server.properties)
例如這是在server.properties下寫的配置 broker.id=0 listeners=PLAINTEXT://:9092 log.dirs=/usr/local/kafka/logs zookeeper.connect=localhost:2181
指定 broker 編號
服務監聽端口 9092
日志保存路徑
/usr/local/kafka/logs
關聯 ZooKeeper 地址
五、總結對比
軟件 不加配置文件(默認模式) 指定配置文件(推薦方式) Redis 6379 端口、無密碼、數據在當前目錄、日志輸出到終端 自定義端口/密碼/數據目錄/日志路徑,適合生產 ZooKeeper 數據在 /tmp/zookeeper
、端口 2181、可能丟數據自定義數據目錄、端口、集群參數,適合持久運行 Kafka 基本不可用(需要配置) 必須配置 broker.id、監聽地址、日志目錄、ZooKeeper/KRaft 模式
? 一句話總結
不加配置文件:走默認參數,適合測試。
加配置文件:走自定義規則,適合生產,幾乎所有生產環境都必須這樣做。