1. 程式人生 > >kafka無法傳送訊息問題處理

kafka無法傳送訊息問題處理

背景

在伺服器上搭建了一個單機環境的kafka broker,在伺服器上使用命令生產訊息時,一切正常。當在本地使用JAVA程式傳送訊息時,一直出錯。 丟擲的錯誤為:
Exception in thread "main" Failed to send requests for topics test with correlation ids in [0,12]
kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.

問題追蹤

最初懷疑是防火牆限制了埠,因此在本地使用telnet連線伺服器埠,發現無法連線,因此關閉伺服器防火牆。重試,還是拋同樣的問題。 後來檢視kafka日誌,發現TCP連線可以正常關閉,而且IP也是客戶端的IP,證明網路沒問題,客戶端確實可以連上kafka伺服器。 那到底是什麼問題呢? 通過檢視kafka配置,發現有個屬性:advertised.host.name。官方文件裡的備註資訊表明,該欄位的值是生產者和消費者使用的。如果沒有設定,則會取host.name的值,預設情況下,該值為localhost。思考一下,如果生產者拿到localhost這個值,只往本地發訊息,必然會報錯(因為本地沒有kafka伺服器)。

問題處理

將advertised.host.name設定為伺服器IP地址,經測試,訊息順利傳送。

總結

其實,在生產者的日誌中,也看到先連線kafka伺服器,然後關閉;然後又連線了本地,再關閉。
Connected to 192.168.56.101:9092 for producing
Disconnecting from 192.168.56.101:9092
Connected to localhost:9092 for producing
Disconnecting from localhost:9092
但是因為不瞭解kafka的配置資訊,所以也沒仔細分析。 另外,在配置生產者時,metadata.broker.list會設定成kafka伺服器的IP和地址。但這個只是獲取一些元資訊,後續傳送訊息時會根據獲取的元資訊來發送,而獲取得元資訊中,由於advertised.host.name被預設為localhost,所以本地當然會把訊息發到本地,結果導致問題出現。

相關推薦

kafka無法傳送訊息問題處理

背景 在伺服器上搭建了一個單機環境的kafka broker,在伺服器上使用命令生產訊息時,一切正常。當在本地使用JAVA程式傳送訊息時,一直出錯。 丟擲的錯誤為: Exception in thread "main" Failed to send requests for

Kafka傳送訊息過程

Kafka傳送訊息模型   ProducerRecord物件包含目標主題和要傳送的內容,還可以指定鍵或分割槽。傳送ProducerRecord物件時,生產者要先把鍵和值物件序列化為位元組陣列(預設使用StringSerialize

Kafka學習筆記(5)----Kafka使用Producer傳送訊息

1. Kafka的Producer   不論將kafka作為什麼樣的用途,都少不了的向Broker傳送資料或接受資料,Producer就是用於向Kafka傳送資料。如下:    2. 新增依賴   pom.xml檔案如下: <!-- https://mvnrepository.com/

Vue使用axios傳送post請求,後端無法接收怎麼處理?(Djnago後臺)

      今天終於解決了一個困擾很久的問題,在使用Vue進行前端專案的搭建時,通常採用axios作為資料傳輸的工具,我們會發現,使用get請求一切都正常,但是使用post請求,會發生一些奇怪的事情。這次我使用的是python的web框架django,但道理都是一樣的,我們可

SPRING 整合 KAFKA 傳送訊息

準備工作 1.安裝kafka+zookeeper環境  2.利用命令建立好topic,建立一個topic my-topic 整合步驟 1.配置生產者 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=

WebSocket傳送訊息,大於126位元組和大於65535位元組的處理

網上搜了一下WebSocket的合包函式,發現不能直接使用。查了很多資料,終於弄出來了,大於65535位元組的沒有測試,但是小於65535的測試通過下面是C#程式碼,其他程式碼根據此程式碼修改即可public static byte[] PackData(string message) {         

kafka producer batch 傳送訊息

1. 使用 KafkaProducer 傳送訊息,是按 batch 傳送的,producer 首先把訊息放入 ProducerBatch 中: org.apache.kafka.clients.producer.internals.ProducerBatch 2. KafkaProduer 類中

kafka傳送訊息失敗的原因

2017-10-08 00:30:52.765 [pool-1-thread-1] INFO org.apache.kafka.common.utils.AppInfoParser - Kafka v

分散式訊息處理Kafka入門

1、Apache Kafka 介紹 Kafka是一種快速、可擴充套件的、設計內在就是分散式的,分割槽的和可複製的提交日誌服務。從下是幾個常用術語。 Topics(主題),訊息流的存在形式。 Producers(生產者) Consumers(消費者) Broker(代理),

java操作kafka傳送訊息和接收訊息

<!-- java程式的Kakfa-->    <dependency>      <groupId>org.apache.kafka</groupId>

kafka傳送訊息出現的問題KafKa error java.nio.channels.UnresolvedAddressException

出現以下的錯 124  [main] INFO  kafka.utils.VerifiableProperties - Verifying properties 157  [main] INFO  kafka.utils.VerifiableProperties - Pr

spring-boot 整合kafka單節點訊息傳送與接收

springboot還處於學習階段,又同時在學習kafka,兩者結合,繼續學習。 1、官網下載kafka 2、解壓 3、對於單節點來說,按照官網上操作即可實現訊息的傳送和接收。 但是對於客戶端,是通過 @KafkaListener 註解監聽生產者傳送的訊

基於Kafka的生產者消費者訊息處理本地除錯

Kafka下載地址:http://download.csdn.net/download/qq_25827845/9798176安裝解壓即可配置修改zookeeper.properties 與 serve

Kafka訊息處理系統配置和簡單使用

Kafka:Kafka是由Apache軟體基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料。 這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的一

Kafka無法消費?!我的分散式訊息服務Kafka卻穩如泰山!

在一個月黑風高的夜晚,突然收到現網生產環境Kafka訊息積壓的告警,夢中驚醒啊,馬上起來排查日誌。 問題現象:消費請求卡死在查詢Coordinator Coordinator為何物?Coordinator用於管理Consumer Group中各個成員,負責消費offset

Kafka面試題全套整理:訊息處理+高可用叢集+生產者與消費者例項

有很多人問過我要過Kafka相關的面試題,我一直懶得整理,這幾天花了點時間,結合之前面試被問過的、別人諮詢過的、我會問別人的進

Flume 採集傳送訊息kafka

一些場景需要採集文字內容傳送到kafka,flume正好提供了這種解決方案 Flume agent指令碼及配置如下 Mac 安裝:

kafka實現無訊息丟失與精確一次語義(exactly once)處理

在很多的流處理框架的介紹中,都會說kafka是一個可靠的資料來源,並且推薦使用Kafka當作資料來源來進行使用。這是因為與其他訊息引擎系統相比,kafka提供了可靠的資料儲存及備份機制。並且通過消費者位移這一概念,可以讓消費者在因某些原因宕機而重啟後,可以輕易得回到宕機前的位置。 但其實kafka的可靠性也

zabbix-添加主機、添加自定義模板、添加自動發現、自動發現設置網卡、圖形亂碼無法顯示中文處理

zabbix zabbix添加主機 zabbix定義模板 zabbix添加自動發現 zabbix圖形亂碼處理 zabbix監控web配置 主動模式和被動模式 主動或者被動是相對客戶端來講的 被動模式:服務端會主動連接客戶端獲取監控項目數據,客戶端被動地接受連接,並把監控信息傳遞給服務端

zabbix-agent服務無法啟動故障處理

disable 服務無法啟動 localhost touch star starting active system 狀態 20180627_15:31:07[root@localhost ~]# systemctl restart zabbix-agent #重啟Z