EF
final Properties props = new Properties();
props.setProperty(
BOOTSTRAP_SERVERS_CONFIG,
"localhost:9092,localhost:9093"
);
props.setProperty(
KEY_SERIALIZER_CLASS_CONFIG,
"org.apache.kafka.common.serialization.StringSerializer"
);
props.setProperty(
CLIENT_ID_CONFIG,
"events-producer"
);
props.setProperty(ACKS_CONFIG, "all");
props.setProperty(RETRIES_CONFIG, "0");
props.setProperty(
VALUE_SERIALIZER_CLASS_CONFIG,
"org.apache.kafka.common.serialization.StringSerializer"
);
final var gson = new GsonBuilder().create();
try (final var producer = new KafkaProducer<String, String>(props)) {
Runtime.getRuntime().addShutdownHook(new Thread(producer::close));
int limit = 1000;
for (int i = 0; i < limit; i++) {
System.out.println(producer.send(
new ProducerRecord<>(
"events",
gson.toJson(new Event())
)
).get());
}
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
всем салют! такой вопрос, что может послушить причиной того, что produce виснет на втором сообщении? это что-то с настройкой кафки или же на уровне кода проблема?
вот что показывает
# kafka-topics.sh --bootstrap-server kafka:29092 --topic events --describe
:Topic: events PartitionCount: 2 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: events Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1
Topic: events Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2
в чем мб проблема?