[英]Why is the Kafka distributed connector dying when the node I created it on is killed?
[英]Second and Third Distributed Kafka Connector workers failing to work correctly
使用 3 個 Kafka 集群和一個相同的 Zookeeper 集群,我建立了一個分布式連接器節點。 該節點通過單個任務成功運行。 然后我打開了第二個連接器,這似乎是因為任務中的某些代碼確實在運行。 然而,它似乎並沒有保持活動狀態(盡管沒有拋出錯誤,但由於缺乏預期的活動而觀察到沒有保持活動狀態,而第一個連接器繼續正常工作)。 當我在每個連接器節點上調用 URL http://localhost:8083/connectors/mqtt/tasks
,它告訴我連接器有一個任務。 我希望這是兩個任務,每個節點/工人一個。 (目前工作人員配置說tasks.max = 1
但我也嘗試將其設置為 3。
當我嘗試打開第三個連接器時,出現錯誤:
"POST /connectors HTTP/1.1" 500 90 5
(org.apache.kafka.connect.runtime.rest.RestServer:60)
ERROR IO error forwarding REST request:
(org.apache.kafka.connect.runtime.rest.RestServer:241)
java.net.ConnectException: Connection refused
嘗試從 shell 再次調用連接器 POST 方法會返回錯誤:
{"error_code":500,"message":"IO Error trying to forward REST request:
Connection refused"}
我還嘗試升級到今天發布的 Apache Kafka 0.10.1.1。 我仍然看到問題。 每個連接器都運行在由單個映像定義的隔離 Docker 容器上。 它們應該是相同的。
問題可能是我試圖在每個工作人員上運行對http://localhost:8083/connectors
的 POST 請求,當我只需要在一個工作人員上運行它一次,然后該連接器的任務將自動分配給其他工人。 如果是這種情況,我該如何分配任務? 我目前將最大值設置為三個,但似乎只有一個在單個工人上運行。
我最終使用 Yuri 建議的基本相同的方法讓事情運行起來。 我給每個工人一個唯一的組 ID,然后給每個連接器任務賦予相同的名稱。 這允許三個連接器及其單個任務共享一個偏移量,因此在接收器連接器的情況下,它們從 Kafka 消費的消息不會重復。 它們基本上作為獨立的連接器運行,因為工作人員具有不同的組 ID,因此不會相互通信。
如果連接器工作人員具有相同的組 ID,則不能添加多個同名的連接器。 如果您為連接器指定不同的名稱,它們將具有不同的偏移量並消耗重復的消息。 如果您在同一組中有三個工作人員,一個連接器和三個任務,那么理論上您將擁有一個理想的情況,其中任務共享一個偏移量,並且工作人員確保任務始終運行且分布良好(每個任務消耗一個獨特的集合分區)。 在實踐中,連接器框架不會創建多個任務,即使 tasks.max 設置為 3 並且當主題任務消耗有 25 個分區時也是如此。
如果有人知道我為什么會看到這種行為,請告訴我。
我在和你一樣的情況下遇到過類似的問題。
我選擇了另一種方式——我使用了獨立的 worker,它對我來說很有吸引力,因為負載分配是在 Kafka 客戶端級別實現的,一旦某個 worker 掉線,集群會自動重新平衡,客戶端連接到未占用的主題。
附注。 也許它對你也有用。 Confluent 連接器不能容忍與主題模式不匹配的無效負載。 一旦連接器收到一些無效消息,它就會默默地死掉。 找出答案的唯一方法是分析指標。
我發布了一個老問題的答案,因為Kafka Connect 在三年內取得了很大進展。
在最新版本 (2.3.1) 中, 增量重新平衡大大改善了 Kafka Connect 的行為。
還值得注意的是,在配置 Kafka Connect rest.advertised.host.name
必須正確設置rest.advertised.host.name
,如果不是這樣你會看到錯誤,包括引用的那個
{"error_code":500,"message":"IO Error trying to forward REST request: Connection refused"}
有關更多詳細信息,請參閱此帖子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.