Kafka Connect
是一種用於在 Kafka 和其他系統之間可擴展的、可靠的的流式傳輸數據的工具。它使得能偶快速定義將大量數據集合移入和移除 kafka 連接器變得簡單。
kafka connect 可以從數據庫或者應用程序服務器收到數據到 kafka topic ,使數據可以用於低延遲的流處理。導出作業可以將數據從 kakfa topic 傳輸到二次存儲和查詢系統,或者傳遞
到批處理系統以進行離線分析
Kafka connect 概念
- Source: 負責導入數據到kafka
- Sink 負責從kafka 導出數據
- Connectors 通過管理任務來協調數據流的高級抽象
- Tasks 數據寫入 kafka 和從 Kafka 中讀取具體實現
- workers 運行 connectors 和tasks 的進程
- Converters : kafka connet 和其他存儲系統直接發送或者接受數據之前轉換數據
- Transforms : 一種輕量級數據調整工具
工作模式
kafka connect 有 2 中工作模式
- standalone: 在 standalone 模式中,所有的worker 都在一個獨立的進程中完成
- distributed : distributed 模式具有高擴展性,以及提供自動容錯機制。你可以使用一個 group.id 在啟動很多worker 進行,在有效的 worker 進程中他們會自動的去協調執行 connector 和task.
- GET /connectors 返回所有正在運行的 connector 的信息
- POST /connectors 新建一個 connectors,必須是 json 格式並且需要包含 name 和 config 字段,name 是 connector 的名字,config 是 json 格式,包含connector 的配置信息
- GET /connectors/{name} 獲取指定 connectir 的信息
- GET /connectors/{name}/config 囧去指定connector 的配置信息
- GET /connectors/{name}/status 獲取狀態,是否允許,是否報錯等
- GET /connectors/{name}/tasks 獲取正在運行的 task
- GET /connectors/{name}/tasks/status 獲取tasks 狀態
- PUT /connectors/{name}/pause 暫停
- PUT /connectors/{name}/resume 恢復被暫停的 connector
- POST /connectors/{name}/restart 重啟
- POST /connectors/{name}/tasks/{taskid}/restart 重啟taks
- DELETE /connectors/{name} 刪除connector ,停止所有task ,並刪除配置