Ich bin der Ignite und Kafka Integration versucht kafka Nachricht in Ignite-Cache zu bringen.Ignite und Kafka Integration
Meine Nachrichten-Taste ist eine zufällige Zeichenfolge (mit Ignite umgehen, die kafkas Nachrichtenschlüssel kann nicht null sein), und der Wert ist eine JSON-String-Darstellung für je Person (eine Java-Klasse)
Wenn Ignite empfängt So eine Nachricht, es sieht so aus, dass Ignite den Schlüssel der Nachricht (die zufällige Zeichenfolge in meinem Fall) als Cache-Schlüssel verwendet.
Ist es möglich, den Nachrichtenschlüssel zu der Person ID zu ändern, so dass ich die in den Cache setzen.
Sieht aus, dass streamer.receiver(new StreamReceiver)
praktikabel ist
streamer.receiver(new StreamReceiver<String, String>() {
public void receive(IgniteCache<String, String> cache, Collection<Map.Entry<String, String>> entries) throws IgniteException {
for (Map.Entry<String, String> entry : entries) {
Person p = fromJson(entry.getValue());
//ignore the message key,and use person id as the cache key
cache.put(p.getId(), p);
}
}
});
Ist dies der empfohlene Weg? und ich bin mir nicht sicher, ob das Aufrufen von cache.put in StreamReceiver ein korrekter Weg ist, da es nur ein Vorverarbeitungsschritt vor dem Schreiben in den Cache ist.
Dank @a_gura für die hilfreiche Antwort! – Tom