0
votes

Confluent Cloud Apache Kafka Consumer - Sujet (s) [Test-1] est / n'est pas présent et mangetopicsfatal est vrai

Je suis un débutant essayant de faire fonctionner la communication entre deux microservices de démarrage à printemps à l'aide de Confluent Cloud Apache Kafka.

Lorsque vous utilisez Kafka sur le nuage confluent, je reçois l'erreur suivante sur mon consommateur (Serviceb) après que Servicea publie le message au sujet. Cependant, lorsque je me connecte à mon nuage confluent, je vois que le message a été publié avec succès sur le sujet. P>

@Service
public class KafkaConsumer {
private static final Logger LOG = LoggerFactory.getLogger(KafkaListener.class);

@Value("{app.topic}")
private String kafkaTopic;

  @KafkaListener(topics = "${app.topic}", containerFactory = "kafkaListenerContainerFactory")
  public void receive(@Payload String data) {
    LOG.info("received data='{}'", data);
  }
}


2 commentaires

Veuillez consulter ce Stackoverflow.com/help/minimal-reproductible-example


Vos propriétés doivent commencer par printemps.kafka . Et votre serveur "local" utilise-t-il également SASL? Docs. printemps.io/spring-boot/docs/current/reference/html/...


3 Réponses :


0
votes

Le nom d'utilisateur et le mot de passe font partie de la configuration JAAS, alors mettez-les sur une ligne

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafkaclient1" password="kafkaclient1-secret";


0 commentaires

0
votes

Voir le Documentation de démarrage .

Vous ne pouvez pas simplement mettre des propriétés Kafka arbitraires directement dans le fichier Application.Properties.

Les propriétés pris en charge par la configuration automatique sont affichées dans l'appendice-Application-Properties.html. Notez que, dans la plupart des cas, ces propriétés (hyphénated ou camelcase) directement sur les propriétés en pointillé Apache Kafka. Reportez-vous à la documentation Apache Kafka pour plus de détails.

Les premières de ces propriétés s'appliquent à tous les composants (producteurs, consommateurs, administrateurs et flux), mais peuvent être spécifiés au niveau du composant si vous souhaitez utiliser différentes valeurs. Apache Kafka désigne des propriétés avec une importance de haut, moyen ou faible. La configuration automatique de la démarrage du ressort prend en charge toutes les propriétés de haute importance, certaines propriétés moyennes et basses sélectionnées, ainsi que toutes les propriétés qui n'ont pas de valeur par défaut.

Seul un sous-ensemble des propriétés pris en charge par Kafka est disponible directement via la classe KafkaProperties. Si vous souhaitez configurer le producteur ou le consommateur avec des propriétés supplémentaires qui ne sont pas prises en charge directement, utilisez les propriétés suivantes: xxx

Ceci définit la propriété commune de PROP.ONE KAFKA à la première (s'applique aux producteurs, aux consommateurs et aux administrateurs), la propriété d'administration de PROP.TWO à Deuxièmement, la propriété de la consommation ProP.Treme à troisième, la propriété Producteur Prop.four à la quatrième place. et la propriété de Prop.five de la propriété à cinquième.

...


0 commentaires

0
votes

@ Cricket_007 La réponse est correcte. Vous devez intégrer le nom d'utilisateur et le mot de passe (notamment de la clé API de cluster et du secret API) dans la valeur de la propriété sasl.jaas.config .

Vous pouvez vérifier comment les clients Java doivent se connecter au cloud confluent via cet exemple officiel ici: https://github.com/confluentinc/examples/blob/5.3.1-post/client/cloud/ Java / SRC / Main / Java / IO / Confluent / Exemples / Clients / Cloud

merci,

- Ricardo


0 commentaires