ERROR 주제에 대한 전송 요청에 실패

동일한 시스템 (로컬 호스트)에있는 경우, 카프카 클라이언트 작업이 제대로, 생산자 및 소비자 보낼 수 있으며, 메시지를 제대로받을 수 있지만 기본 구성은 작업을하지 않는 경우 일단은, 두 컴퓨터에 배포. "kafka.common.FailedToSendMessageException 3 개 시도 후 전송 메시지에 실패"오류가 발생합니다.
 

[2020년 1월 9일 12 : 42 : 43,841] 오류 [17,24] (kafka.producer.async.DefaultEventHandler)에 상관 ID를 가진 주제의 캐시 메시지 전송 요청에 실패
[2020년 1월 9일 12시 42분 : 1 개 이벤트의 일괄 처리에 43841] 오류 오류 (kafka.producer.async.ProducerSendThread)
kafka.common.FailedToSendMessageException는 3 개 시도 후 메시지를 보내지 못했습니다.
        kafka.producer.async.DefaultEventHandler.handle (DefaultEventHandler.scala : 90)에서
        : kafka.utils.Utils $에서 (376 Utils.scala를) .read
        : kafka.network.BoundedByteBufferReceive.readFrom (54 BoundedByteBufferReceive.scala)에서
        카프카에서 .network.Receive $ class.readCompletely (Transmission.scala : 56)
        : kafka.network.BoundedByteBufferReceive.readCompletely (29 BoundedByteBufferReceive.scala)에서
        kafka.network.BlockingChannel.receive에서 (BlockingChannel.scala 100)
        kafka.producer.SyncProducer.liftedTree1에 $ 1 (SyncProducer.scala 74)
        kafka.producer에서 .SyncProducer.kafka $으로 생산 $ SyncProducer $$ doSend (SyncProducer.scala : 71)
        : kafka.producer.SyncProducer.send (112 SyncProducer.scala)에서
        kafka.client.ClientUtils $ .fetchTopicMetadata (ClientUtils.scala 53)에서
        의 kafka.producer.BrokerPartitionInfo.updateInfo (BrokerPartitionInfo.scala : 82)
        kafka.producer.BrokerPartitionInfo.getBrokerPartitionInfo에서 (BrokerPartitionInfo.scala 49)
        : $ DefaultEventHandler $$ getPartitionListForTopic (186 DefaultEventHandler.scala) 비동기 kafka.producer.async.DefaultEventHandler.kafka $ 생산자 $에서
        kafka.producer.async.DefaultEventHandler $$ anonfun $ partitionAndCollate $ 1.apply에서 (DefaultEventHandler.scala 150)
        에서 kafka.producer.async.DefaultEventHandler $$ anonfun $ partitionAndCollate $ 1.apply (DefaultEventHandler.scala : 149)
        : scala.collection.mutable.ResizableArray $의 class.foreach에서 (60 ResizableArray.scala)
        scala.collection.mutable.ArrayBuffer에서. (47 ArrayBuffer.scala)의 foreach
        : kafka.producer.async.DefaultEventHandler.partitionAndCollate (149 DefaultEventHandler.scala)에서를
        kafka.producer.async.DefaultEventHandler.dispatchSerializedData에서 (DefaultEventHandler.scala : 95)
        : kafka.producer.async.DefaultEventHandler.handle (72 DefaultEventHandler.scala)에서
        : kafka.producer.async.ProducerSendThread.tryToHandle (104 ProducerSendThread.scala)에서
        kafka.producer.async.ProducerSendThread $$ anonfun $ processEvents $ 3.apply에서 (ProducerSendThread.scala 87)
        kafka.producer.async.ProducerSendThread $$ anonfun $ processEvents $ 3.apply에서 (ProducerSendThread.scala 67)
        scala.collection.immutable.Stream.foreach에서 (Stream.scala : 526)
        카프카에서. producer.async.ProducerSendThread.processEvents (ProducerSendThread.scala 66)
        kafka.producer.async.ProducerSendThread.run (ProducerSendThread.scala 44)에서
[2020년 1월 9일 12 : 42 : 43,500이 [2 호스트 : 192.168.0.108 포트 : 번호 2,181] 브로커 주제 [집합 (캐시 메시지)]의 상관 ID (19)를 가져 오는 항목 메타 WARN 실패를 (카프카 .client.ClientUtils $)
java.io.EOFException : 수신 -1 채널에서 읽을 때, 소켓은 가능성이 닫혔습니다.
        kafka.utils.Utils에서 $는 (: 376 Utils.scala를) .read

이 솔루션은 호스트 이름을 설정할 수 있습니다, 단지 구성 파일 server.properties 카프카의에서, 매우 간단합니다 :

# 호스트 이름 브로커에 결합됩니다. 설정되지 않은 경우, 서버는 모든 interfaceshost.name = 큐 서버 1에 결합한다

그 이유는, 사실, 의견에서, 우리는이 지정된 브로커 주소 (엄격 네트워크 인터페이스를 수신 대기 말하기, 또는 NIC)되고, 동시에, 그것은 또한 아래 및 관련 속성을 볼 수 있음을 알 수 있습니다.

# 호스트 이름은 브로커는 생산자와 소비자에게 광고합니다. 설정되지 않은 경우에는 사용

# 구성된 경우 "host.name"에 대한 값입니다. 그렇지 않으면에서 반환 된 값을 사용합니다

# java.net.InetAddress.getCanonicalHostName ().

# advertised.host.name =

즉, 생산자와 소비자가 호스트 이름 (advertised.host.name) 브로커로 연결되고,이 값이 설정되어 있지 않은 경우는 위의 host.name을하지 않는 경우는, 위의 host.name의 값을 사용합니다 제공 사용될 java.net.InetAddress.getCanonicalHostName () 값이 얻어.

브로커가 물론, 로컬 호스트 때 사육사, 기본에서 볼 수 있듯이, 다른 컴퓨터에서 접속이 성공할 수 없다.


 
 

게시 41 개 원래 기사 · 원 찬양 20 ·은 30000 +를 볼

추천

출처blog.csdn.net/m0_37598953/article/details/103951936