Ubuntu上Kafka遷移步驟(以自建集群遷移為例)
server.properties
等核心參數,如broker.id
、listeners
、zookeeper.connect
)。/var/lib/kafka/data
目錄下的消息數據)、配置文件(server.properties
、zookeeper.properties
)及Topic元數據(可通過kafka-topics.sh --describe
導出),防止遷移失敗無法恢復。若需遷移Topic配置(分區數、副本數、ACL權限等),可使用Kafka自帶的MirrorMaker 2工具(支持元數據同步)。
consumer.properties
(源集群配置):設置bootstrap.servers
為源集群Broker地址(如source-broker1:9092,source-broker2:9092
),group.id
為遷移組ID(如migration-group
),auto.offset.reset
為earliest
(從最早偏移量讀?。?。producer.properties
(目標集群配置):設置bootstrap.servers
為目標集群Broker地址(如target-broker1:9092,target-broker2:9092
)。./kafka-mirror-maker.sh --consumer.config config/consumer.properties --producer.config config/producer.properties --whitelist=".*"
(--whitelist
指定需遷移的Topic(支持正則,如topic1,topic2
或.*
表示全部)),同步完成后,目標集群將擁有與源集群一致的Topic結構。kafka-consumer-groups.sh
工具監控消費進度,確保舊集群中所有Topic的消息被消費完畢(如./kafka-consumer-groups.sh --bootstrap-server source-broker:9092 --describe --group my-group
,查看CURRENT-OFFSET
與LOG-END-OFFSET
是否一致)。bootstrap.servers
指向目標集群地址),重啟消費者應用,開始從目標集群消費消息。bootstrap.servers
指向目標集群地址),重啟生產者應用,開始向目標集群發送消息。bootstrap.servers
指向目標集群地址),重啟消費者應用,開始從目標集群消費消息。kafka-topics.sh
工具對比源集群與目標集群的Topic配置(分區數、副本數、ACL權限等),例如:
./kafka-topics.sh --describe --zookeeper source-zk:2181 --topic my-topic
./kafka-topics.sh --describe --bootstrap-server target-broker:9092 --topic my-topic
kafka-console-consumer.sh
工具抽樣檢查源集群與目標集群的消息內容是否一致(如從兩個集群消費同一Topic的相同偏移量消息,對比內容),或使用第三方工具(如Confluent Control Center)進行自動化校驗。./kafka-consumer-groups.sh --bootstrap-server target-broker:9092 --describe --group my-group
,查看CURRENT-OFFSET
是否等于源集群的LOG-END-OFFSET
)。bootstrap.servers
配置永久修改為目標集群地址,確保業務完全運行在新集群上。/var/lib/kafka/data
)、日志目錄(/var/log/kafka
)及備份文件,釋放存儲空間。