Asynchronous 在同步模式下如何提高Kafka Producer的性能
我开发了一个Asynchronous 在同步模式下如何提高Kafka Producer的性能,asynchronous,apache-kafka,kafka-producer-api,Asynchronous,Apache Kafka,Kafka Producer Api,我开发了一个Kafka版本:0.9.0.1应用程序,它不能丢失任何消息 我有一个约束,即消息必须按正确的顺序使用 为了确保不丢失任何消息,我在应用程序代码中实现了重试,并将生产者配置为ack=all 为了强制执行异常处理并快速失败,我立即从Producer.send()返回Future,例如 final Future<RecordMetadata> futureRecordMetadata = KAFKA_PRODUCER.send(producerRecord); futureRe
Kafka版本:0.9.0.1
应用程序,它不能丢失任何消息
我有一个约束,即消息必须按正确的顺序使用
为了确保不丢失任何消息,我在应用程序代码中实现了重试,并将生产者配置为ack=all
为了强制执行异常处理并快速失败,我立即从Producer.send()
返回Future
,例如
final Future<RecordMetadata> futureRecordMetadata = KAFKA_PRODUCER.send(producerRecord);
futureRecordMetadata.get();
是否可以异步发送卡夫卡消息,并保证它们始终以正确的顺序安全到达
更新001
我是否可以直接从主题中使用卡夫卡消息键顺序的消息
或者我必须按偏移量顺序使用消息,然后以编程方式进行排序
要发送卡夫卡消息密钥顺序吗?如果您希望总订单,则发送性能很差。(实际上,总订单情况非常罕见)。
如果分区顺序可以接受,则可以使用多线程生成器。每个分区有一个生产者/线程。我们只能使用一个分区,因为这是我们保证发送序列的方式。您正在处理什么样的数据?database binlog?数据库在DBMS插入、更新和删除之后的行之前和之后。这就是为什么我的信息必须保持正确的顺序
130 [NamedConnector-Monitor] WARN org.apache.kafka.clients.producer.ProducerConfig - The configuration request.required.acks = -1 was supplied but isn't a known config.