网站制作怎么做html5 后台网站模板

张小明 2026/1/2 20:26:24
网站制作怎么做,html5 后台网站模板,免费w视频带痛叫的聊天,免费查询个人企业信息视频看了几百小时还迷糊#xff1f;关注我#xff0c;几分钟让你秒懂#xff01;一、什么是“提交”#xff08;Commit#xff09;#xff1f;在 Kafka 中#xff0c;消费者消费消息后需要“提交偏移量”#xff08;offset commit#xff09;#xff0c;告诉 Kafka关注我几分钟让你秒懂一、什么是“提交”Commit在 Kafka 中消费者消费消息后需要“提交偏移量”offset commit告诉 Kafka“我已经处理到第 X 条消息了下次从 X1 开始给我发”。偏移量offset每条消息在分区中的唯一序号。提交commit记录当前已成功处理的 offset。Kafka 提供两种提交方式✅自动提交auto-commit由 Kafka 客户端自动完成默认开启✅手动提交manual commit由开发者代码控制今天我们重点讲自动提交机制—— 它看似简单但用不好会丢消息或重复消费二、自动提交如何工作原理图解默认配置Spring Boot 中spring: kafka: consumer: enable-auto-commit: true # 默认就是 true auto-commit-interval: 5000 # 每 5 秒提交一次 工作流程消费者启动从上次提交的 offset 开始拉取消息比如 offset100Kafka 客户端后台线程每隔auto.commit.interval.ms默认 5 秒自动提交当前已拉取的最新 offset注意不是“处理完才提交”而是“拉取了就可能提交”⚠️ 关键问题自动提交的是“已拉取”的 offset不是“已处理”的 offset三、需求场景 反例演示为什么会丢消息 场景用户注册后发送欢迎邮件你希望只有邮件真正发送成功才算消息消费成功。❌ 反例代码危险KafkaListener(topics user-register) public void handleRegister(User user) { // 1. 拉取消息offset101 被拉取 // 2. 自动提交线程将在 5 秒内提交 offset101 try { emailService.sendWelcomeEmail(user); // 耗时 8 秒且可能失败 } catch (Exception e) { // 邮件发送失败但 offset 已经被自动提交了 log.error(邮件发送失败, e); } } 后果分析时间事件T0s拉取 offset101 的消息T3s开始发送邮件耗时 8 秒T5s自动提交线程提交 offset101即使邮件还没发完T6s应用崩溃 / 重启T7s重启后从 offset102 开始消费 →offset101 的消息永远丢失 这就是消息丢失的典型原因四、正确做法关闭自动提交改用手动提交✅ 步骤 1关闭自动提交application.ymlspring: kafka: consumer: enable-auto-commit: false # 关闭自动提交 group-id: email-service✅ 步骤 2使用手动 ACK确认KafkaListener( topics user-register, groupId email-service ) public void handleRegister(User user, Acknowledgment ack) { try { emailService.sendWelcomeEmail(user); // 业务成功 → 手动提交 offset ack.acknowledge(); } catch (Exception e) { // 失败时不提交下次重启还会重新消费这条消息 log.error(处理失败不提交 offset, e); // 可选记录到死信队列避免无限重试 } }✅ 步骤 3启用手动 ACK 模式关键Configuration EnableKafka public class KafkaConfig { Bean public ConcurrentKafkaListenerContainerFactoryString, User kafkaListenerContainerFactory( ConsumerFactoryString, User consumerFactory) { ConcurrentKafkaListenerContainerFactoryString, User factory new ConcurrentKafkaListenerContainerFactory(); factory.setConsumerFactory(consumerFactory); // 设置为手动提交 factory.getContainerProperties().setAckMode(ContainerProperties.AckMode.MANUAL_IMMEDIATE); return factory; } }✅ 这样只有ack.acknowledge()被调用offset 才会提交确保“处理成功才提交”。五、自动提交 vs 手动提交 对比表特性自动提交auto-commit手动提交manual commit默认开启✅ 是❌ 否提交时机每隔 N 秒与业务无关由代码控制业务成功后消息可靠性可能丢消息不丢消息至少一次重复消费不会但可能丢可能重复需幂等适用场景日志收集、监控等允许丢失的场景订单、支付、邮件等关键业务六、注意事项避坑指南不要盲目依赖自动提交除非你能接受消息丢失。手动提交也要防重复因为应用可能在ack.acknowledge()之后、实际业务完成前崩溃极小概率所以消费者逻辑要幂等如用数据库唯一索引去重。批量提交更高效如果吞吐量大可用AckMode.BATCH一批消息处理完再统一提交。测试崩溃场景用kill -9模拟非优雅关闭验证消息是否丢失。七、总结Kafka 的自动提交机制是“拉取即提交”不是“处理完成才提交”。在关键业务中必须关闭自动提交改用手动 ACK 幂等设计。Spring Boot 提供了完善的 API 支持手动提交只需几行配置即可提升系统可靠性。视频看了几百小时还迷糊关注我几分钟让你秒懂
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

睢县做网站北京软件外包公司名单

运维工程师的出路在哪里,尤其是 35 岁以后? 最近在某乎看到个问题,“运维的出路在哪里,特别是35以后?”, 网友 1:孩子快跑 打好基础,网络,安全,数据库,服务…

张小明 2025/12/27 6:43:14 网站建设

做视频网站赚钱吗wordpress 批量产品尺码

滚珠导轨在工业机械设备中是关键的传动元件,广泛应用于数控机床、自动化设备、精密仪器等领域。固在机械设备中选择适合的滚珠导轨直接决定了设备的性能稳定性与最终品质。面对特定应用场景,如何选择适合的滚珠导轨,是个关键的问题。确定负载…

张小明 2025/12/26 5:04:50 网站建设

刚做的单页网站怎么预览wordpress 云存储

70亿参数撬动全模态交互革命:Qwen2.5-Omni重塑AI应用格局 【免费下载链接】Qwen2.5-Omni-7B 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen2.5-Omni-7B 导语 阿里云通义千问团队发布的Qwen2.5-Omni-7B模型以70亿参数实现文本、图像、音频、视频的…

张小明 2025/12/27 13:48:20 网站建设

网站建设7大概要多久网站权重查询接口

第一章:错过Open-AutoGLM就等于错过下一个自动化风口在人工智能飞速演进的今天,大语言模型(LLM)正从“能说会写”迈向“自主决策”的新阶段。Open-AutoGLM 作为开源领域首个聚焦于自动化任务执行的 GLM 架构衍生项目,正…

张小明 2026/1/2 20:08:29 网站建设

网站建设与管理相关工作岗位asp.net网站制作视频教程

OpenPLC虚拟控制器:5步掌握工业自动化编程新利器 【免费下载链接】OpenPLC Software for the OpenPLC - an open source industrial controller 项目地址: https://gitcode.com/gh_mirrors/op/OpenPLC OpenPLC虚拟控制器是一个强大的开源工业自动化软件&…

张小明 2025/12/27 15:11:26 网站建设

代做网站收费标准无锡商业网站建设

(4-叔丁基苯基)二苯基锍樟脑磺酸盐光刻胶增感剂用樟脑磺酸盐是高端光刻胶配方中的关键原料,特别是在化学放大光刻胶(CAR)中作为光致产酸剂(PAG) 或其组成部分。一、原料与配方(一)核心原料1. 樟…

张小明 2025/12/28 6:48:52 网站建设