Wie kann ich mit der Nachricht umgehen, die im Frühjahr Integration zu Kafka zu produzieren fehlgeschlagen?Frühling Integration Kafka Outbound Adapter Fehler Handle
Ich habe nicht 'error-channel' ist eine Option bei 'int-kafka: outbound-channel-adapter', frage mich, wo sollte ich die Fehler-Kanal-Informationen hinzufügen, so dass mein ErrorHandler kann "fehlgeschlagen zu produzieren zu kafka "Art des Fehlers. (einschließlich aller Arten von Fehler, Konfiguration, Netzwerk und usw.)
Auch inputToKafka ist in der Warteschlange Kanal, wo sollte ich Fehler-Kanal hinzufügen, um potenzielle Warteschlange voller Fehler behandeln?
<int:gateway id="myGateway"
service-interface="someGateway"
default-request-channel="transformChannel"
error-channel="errorChannel"
default-reply-channel="replyChannel"
async-executor="MyThreadPoolTaskExecutor"/>
<int:transformer id="transformer" input-channel="transformChannel" method="transform" output-channel="inputToKafka">
<bean class="Transformer"/>
</int:transformer>
<int-kafka:outbound-channel-adapter id="kafkaOutboundChannelAdapter"
kafka-template="template"
auto-startup="false"
channel="inputToKafka"
topic="foo"
message-key-expression="'bar'"
partition-id-expression="2">
<int:poller fixed-delay="200" time-unit="MILLISECONDS" receive-timeout="0"
task-executor="kafkaExecutor"/>
</int-kafka:outbound-channel-adapter>
<bean id="kafkaExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
....
</bean>
<bean id="template" class="org.springframework.kafka.core.KafkaTemplate">
<constructor-arg>
<bean class="org.springframework.kafka.core.DefaultKafkaProducerFactory">
<constructor-arg>
<map>
<entry key="bootstrap.servers" value="localhost:9092" />
...
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
<int:service-activator input-channel='errorChannel' output-channel="replyChannel" method='process'>
<bean class="ErrorHandler"/>
</int:service-activator>
bearbeiten
<property name="producerListener">
<bean id="producerListener" class="org.springframework.kafka.support.ProducerListenerAdapter"/>
</property>
sollte ich einfach den 'bearbeiten' Teil in meine KafkaTemplate Bean hinzufügen? (siehe in Originalfrage bearbeiten.) – edi
Sie müssen den Adapter ableiten und eine Aktion in 'onError()' (oder beiden) ausführen. Wenn Sie 'onSuccessI()' implementieren, müssen Sie 'isInteressedInSuccess()' auf true überschreiben. Der Standard-Listener ('LoggingProducerListener') protokolliert nur Fehler. –
Ich sah die onError ist zurück, void, wie Sie sicherstellen, dass die Nachricht an meine ErrorHandler in meiner ursprünglichen Frage geht? Oder eine andere Möglichkeit, einen anderen errorHandler zu implementieren, der Informationen an replyChannel zurücksendet – edi