© Anton Dolganin 2025
Частая архитектура: Kafka доставляет события, Redis обеспечивает мгновенный доступ к данным.
Как связать:
Kafka Consumer подписан на compacted-топик (например, user-state
).
При каждом новом событии:
import org.apache.kafka.clients.consumer.*;
import redis.clients.jedis.Jedis;
import java.util.*;
Jedis jedis = new Jedis("localhost", 6379);
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "cache-sync");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("auto.offset.reset", "earliest");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList("user-state"));
for (ConsumerRecord<String, String> record : consumer.poll(Duration.ofMillis(100))) {
jedis.set(record.key(), record.value());
}
Прогрев? Просто запускаем consumer с from-beginning
и заливаем все данные в Redis.
Зачем это нужно:
Отлично подходит для:
© Anton Dolganin 2025