手机网站建设咨询,做生存分析的网站有哪些,企业网站开发韵茵建站,app导航网站源码1. acks0
可靠性最低生产者发送消息后不等待任何Broker确认可能丢失消息#xff08;Broker处理失败/网络丢失时无法感知#xff09;吞吐量最高#xff0c;适用于允许数据丢失的场景#xff08;如日志收集#xff09;
2. acks1 (默认值)
Leader副本确认模式生产者等待Le…1. acks0
可靠性最低生产者发送消息后不等待任何Broker确认可能丢失消息Broker处理失败/网络丢失时无法感知吞吐量最高适用于允许数据丢失的场景如日志收集
2. acks1 (默认值)
Leader副本确认模式生产者等待Leader副本写入本地log后确认可能丢失数据Leader写入后但其他副本未同步时Leader宕机在可靠性和吞吐量之间取得平衡
3. acksall (或 -1)
最高可靠性生产者等待所有ISRIn-Sync Replicas副本确认需要配合min.insync.replicas参数使用建议 2确保消息被所有ISR副本持久化后才返回确认吞吐量最低但可防止任何副本故障导致的数据丢失
可靠性补充建议
当使用acksall时建议设置retries 0启用重试机制配置max.in.flight.requests.per.connection1保证消息顺序监控ISR集合大小避免因副本掉线导致生产阻塞
// 典型可靠性配置示例
// ... existing code ...
props.put(ProducerConfig.ACKS_CONFIG, all); // mcsymbol nameACKS_CONFIG filenameKafkaConfig.java pathsrc/main/java/com/example/kafka/KafkaConfig.java startline5 typefield/mcsymbol
// 要求所有ISR副本确认写入最高可靠性保证
// 需配合min.insync.replicas2使用防止单点故障props.put(ProducerConfig.RETRIES_CONFIG, Integer.MAX_VALUE); // mcsymbol nameRETRIES_CONFIG filenameKafkaConfig.java pathsrc/main/java/com/example/kafka/KafkaConfig.java startline6 typefield/mcsymbol
// 设置无限次重试需配合delivery.timeout.ms参数
// 当遇到可恢复错误时如Leader选举、网络抖动持续重试props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, true); // mcsymbol nameENABLE_IDEMPOTENCE_CONFIG filenameKafkaConfig.java pathsrc/main/java/com/example/kafka/KafkaConfig.java startline7 typefield/mcsymbol
// 启用幂等性生产自动去重机制
// 通过producerIdsequenceNumber实现精确一次语义EOSprops.put(ProducerConfig.MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION, 1); // mcsymbol nameMAX_IN_FLIGHT_REQUESTS_PER_CONNECTION filenameKafkaConfig.java pathsrc/main/java/com/example/kafka/KafkaConfig.java startline8 typefield/mcsymbol
// 限制单个连接未确认请求数为1保证消息顺序
// 可能降低吞吐量但避免消息乱序
// ... existing code ...