Java 卡夫卡事务制作人&x2014;read_committed显示中止后的记录
我编写了这个简单的程序来测试卡夫卡的新事务制作人:Java 卡夫卡事务制作人&x2014;read_committed显示中止后的记录,java,apache-kafka,kafka-producer-api,Java,Apache Kafka,Kafka Producer Api,我编写了这个简单的程序来测试卡夫卡的新事务制作人: package test; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; import java.util.Properties; class k
package test;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;
class kafkatest {
public static void main(String[] args) {
Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
props.put(ProducerConfig.CLIENT_ID_CONFIG, "hello-world-producer");
props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, true);
props.put(ProducerConfig.TRANSACTIONAL_ID_CONFIG, "test");
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer producer = new KafkaProducer(props);
producer.initTransactions();
producer.beginTransaction();
producer.send(new ProducerRecord<>("topic", "hello", "world"));
producer.flush();
producer.abortTransaction();
producer.close();
}
}
我缺少什么?要对控制台使用者使用
read\u committed
,您需要指定--隔离级别
选项:
kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic topic --from-beginning --isolation-level=read_committed
否则,此选项默认为
read_uncommitted
,并覆盖通过--消费者属性传递的值 要对控制台使用者使用read\u committed
,需要指定--隔离级别
选项:
kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic topic --from-beginning --isolation-level=read_committed
否则,此选项默认为read_uncommitted
,并覆盖通过--消费者属性传递的值 我生命中损失的2小时我生命中损失的2小时