2017-12-04 5 views
0

Nur eine Art der Veröffentlichung ist beschrieben here. Es gibt einen anderen Weg? Das Beispiel, das ich brauche, um eine Publikation mit dynamischer Themen-ID und benutzerdefinierten Ereignis ohne persistentEntityRegistry zu machen? Und wie kann ich das Ereignis mit eventId veröffentlichen?Lagom Veröffentlichen Nachricht mit Kafka

@Override 
    default Descriptor descriptor() { 
    return named("helloservice").withCalls(
     pathCall("/api/hello/:id", this::hello), 
     pathCall("/api/event/:id", this::pushEventWithId) // id - eventId 
    ) 
     .withTopics(
     topic(GREETINGS_TOPIC, this::greetingsTopic) 
    ) 
     .withAutoAcl(true); 
    } 

Verarbeitungsanfrage.

public ServiceCall<RequestMessage, NotUsed> pushEventWithId(String eventId) { 
    return message -> { 
     // Here I need push this message to kafka with eventId. Another service should be subscribed on this eventId 

    } 
} 

Lagom Version: 1.3.10

Antwort

0

Dies wird derzeit nicht unterstützt. Was Sie tun können, ist, den Kafka-Client direkt selbst zu instanziieren (dies ist nicht schwer zu tun), um Nachrichten unbedingt so zu veröffentlichen.

Während Unterstützung für die Veröffentlichung von Nachrichten dringend in der Zukunft hinzugefügt wird, ein Grund, Lagom hat noch keine Unterstützung hinzugefügt, dass sehr oft, wenn Menschen dies tun möchten, sie tatsächlich Anti-Muster in ihr System einführen, wie die Möglichkeit der Inkonsistenz. Zum Beispiel, wenn Sie einen Dienst haben, der eine Datenbank aktualisiert, dann eine Nachricht an Kafka veröffentlicht, haben Sie ein Problem, denn wenn die Datenbankaktualisierung erfolgreich ist, aber die Nachrichtenveröffentlichung fehlschlägt, dann wird nichts das Update bekommen, und Ihr Das System befindet sich in einem inkonsistenten Zustand. Was this presentation für einen detaillierten Einblick in, warum dies ein Problem ist, und wie das Veröffentlichen von Ereignissen aus einem Ereignisprotokoll es löst.

+0

Vielen Dank für die Antwort. Ich habe es direkt mit Kafka Client gemacht. –

Verwandte Themen