做网站的网络公司税收优惠画册设计是什么

张小明 2025/12/31 21:06:19
做网站的网络公司税收优惠,画册设计是什么,网站建设-好发信息网,网页制作教程pdf半夜被电话叫醒#xff0c;消息积压了200万条#xff0c;消费者根本追不上。 这种场景搞过Kafka的应该都经历过#xff0c;整理一下踩过的坑和解决方案。 坑一#xff1a;消息积压 现象 监控告警#xff1a;topic-order的lag超过100万。 # 查看消费者lag kafka-consumer-g…半夜被电话叫醒消息积压了200万条消费者根本追不上。这种场景搞过Kafka的应该都经历过整理一下踩过的坑和解决方案。坑一消息积压现象监控告警topic-order的lag超过100万。# 查看消费者lagkafka-consumer-groups.sh --bootstrap-server localhost:9092\--describe --group order-consumer GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG order-consumer topic-order0123456723456781111111order-consumer topic-order1123456823456791111111order-consumer topic-order2123456923456801111111三个分区每个积压100多万加起来300多万。排查过程1. 先看生产速度# 查看topic的写入速度kafka-run-class.sh kafka.tools.GetOffsetShell\--broker-list localhost:9092\--topic topic-order --time -1# 隔10秒再执行一次算差值# 发现每秒写入约5000条2. 再看消费速度消费者日志显示处理一条消息要200ms算下来每秒只能处理5条。问题找到了消费太慢。解决方案方案一增加消费者实例Kafka的分区数决定了最大并行度。3个分区最多3个消费者并行。# 先增加分区注意分区只能增不能减kafka-topics.sh --bootstrap-server localhost:9092\--alter --topic topic-order --partitions12然后部署12个消费者实例。方案二批量消费// 原来一条一条处理KafkaListener(topicstopic-order)publicvoidconsume(Stringmessage){processOrder(message);// 200ms}// 优化后批量处理KafkaListener(topicstopic-order)publicvoidconsumeBatch(ListStringmessages){// 攒一批再处理减少IO次数batchProcessOrders(messages);// 批量写库}配置调整spring:kafka:consumer:max-poll-records:500# 一次拉取500条listener:type:batch# 批量模式方案三异步处理KafkaListener(topicstopic-order)publicvoidconsume(Stringmessage){// 扔到线程池异步处理executor.submit(()-processOrder(message));}但要注意异步处理需要手动管理offset提交不然可能丢消息。效果优化后消费速度从5条/秒提升到3000条/秒积压2小时内消化完。坑二消息丢失现象业务反馈有订单没收到但生产端日志显示发送成功了。排查1. 生产端配置props.put(acks,1);// 问题在这acks1表示leader收到就返回成功但如果leader挂了、follower还没同步消息就丢了。2. 消费端配置props.put(enable.auto.commit,true);props.put(auto.commit.interval.ms,1000);自动提交offset如果消费处理到一半程序挂了offset已经提交了这条消息就丢了。解决方案生产端// acksall所有ISR副本都写入才算成功props.put(acks,all);// 重试次数props.put(retries,3);// 开启幂等性props.put(enable.idempotence,true);消费端// 关闭自动提交props.put(enable.auto.commit,false);// 手动提交KafkaListener(topicstopic-order)publicvoidconsume(ConsumerRecordString,Stringrecord,Acknowledgmentack){try{processOrder(record.value());ack.acknowledge();// 处理成功才提交}catch(Exceptione){// 处理失败不提交会重新消费log.error(处理失败,e);}}Broker端# 最小ISR副本数 min.insync.replicas2 # 不允许非ISR副本选举为leader unclean.leader.election.enablefalse坑三重复消费现象同一条消息被处理了两次导致订单重复扣款。原因消费者处理完消息还没来得及提交offset就挂了。重启后从上次提交的offset开始消费这条消息又被消费一次。Kafka是at-least-once语义不保证exactly-once。解决方案业务幂等publicvoidprocessOrder(Stringmessage){OrderorderJSON.parseObject(message,Order.class);// 先查是否已处理过if(orderService.exists(order.getOrderId())){log.info(订单已处理过跳过: {},order.getOrderId());return;}// 处理订单orderService.process(order);}Redis去重publicvoidprocessOrder(Stringmessage){StringmsgIdextractMsgId(message);// Redis SETNX已存在返回falsebooleanisNewredis.setIfAbsent(kafka:processed:msgId,1,24,TimeUnit.HOURS);if(!isNew){log.info(消息已处理过: {},msgId);return;}// 处理业务doProcess(message);}数据库唯一约束-- 用唯一约束兜底CREATEUNIQUEINDEXuk_order_idONorders(order_id);坑四消费者频繁Rebalance现象日志里频繁出现Revoking previously assigned partitions Rebalance triggered消费者不停地Rebalance效率极低。原因1. 心跳超时// 默认10秒没心跳就认为消费者挂了session.timeout.ms10000如果处理一条消息超过10秒就会被踢出消费组。2. poll间隔太长// 默认5分钟内必须调用pollmax.poll.interval.ms300000处理500条消息花了6分钟超时了。解决方案// 增加session超时时间props.put(session.timeout.ms,30000);props.put(heartbeat.interval.ms,10000);// 增加poll间隔props.put(max.poll.interval.ms,600000);// 减少单次拉取数量props.put(max.poll.records,100);核心原则确保在max.poll.interval.ms内能处理完max.poll.records条消息。坑五顺序消费需求同一个用户的操作必须按顺序处理。问题默认情况下消息分散到不同分区不同分区的消费顺序无法保证。解决方案指定分区key// 用userId作为key相同userId的消息会落到同一分区kafkaTemplate.send(topic-order,userId,message);单分区方案不推荐除非量很小// 只用一个分区保证全局顺序kafkaTemplate.send(topic-order,0,null,message);注意事项同一分区内保证顺序但重试可能打乱顺序设置max.in.flight.requests.per.connection1保证严格顺序props.put(max.in.flight.requests.per.connection,1);性能调优参数生产者# 批量发送攒够16K或等1ms就发 batch.size16384 linger.ms1 # 发送缓冲区 buffer.memory33554432 # 压缩推荐lz4 compression.typelz4消费者# 单次拉取大小 fetch.min.bytes1 fetch.max.bytes52428800 fetch.max.wait.ms500 # 单次poll记录数 max.poll.records500Broker# 日志保留 log.retention.hours168 log.retention.bytes1073741824 # 分区数根据消费者数量设置 num.partitions12 # 副本 default.replication.factor3 min.insync.replicas2监控指标这几个指标必须监控指标含义报警阈值ConsumerLag消费延迟根据业务定MessagesInPerSec写入速度突增报警BytesInPerSec流量接近带宽报警UnderReplicatedPartitions副本不足的分区0报警OfflinePartitionsCount离线分区0报警集群运维我们的Kafka集群分布在两个机房之前两边网络不通很麻烦。后来用星空组网把两个机房组到一个网络里Kafka的跨机房复制配置简单多了。总结Kafka踩坑清单问题原因解决方案消息积压消费慢加分区、批量消费、异步处理消息丢失acks配置不当acksall、手动提交重复消费at-least-once语义业务幂等、去重频繁Rebalance超时配置不当调整超时参数顺序问题多分区并行指定分区keyKafka本身很稳定大多数问题都是配置和使用不当导致的。有Kafka相关问题欢迎评论区讨论~
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

免费学做衣服的网站类似淘宝网 的淘宝客网站模板

GitHub Pull Request 流程中的环境一致性实践:基于 Miniconda-Python3.9 的开发协作优化 在开源项目中,你是否遇到过这样的场景?你精心编写了一个功能补丁,本地测试全部通过,满怀信心地提交了 Pull Request&#xff08…

张小明 2025/12/31 21:06:19 网站建设

扁平化网站源码人家做网站是什么

MusicFree插件系统完整指南:打造个性化音乐播放器的终极教程 【免费下载链接】MusicFreePlugins MusicFree播放插件 项目地址: https://gitcode.com/gh_mirrors/mu/MusicFreePlugins MusicFree插件系统是一个功能强大的开源音乐播放器插件生态,让…

张小明 2025/12/31 21:05:47 网站建设

优化网站速度的要点微信公众号接口文档

一、Python概述 1、计算机资源 在开发领域,计算机资源可以分为两部分:软件资源 硬件资源 软件资源:看得见,摸不着 硬件资源:看得见,摸得着 硬件资源(CPU、内存、硬盘、风扇、电源、键盘、鼠标……

张小明 2025/12/31 21:05:15 网站建设

网站备案免费的吗dw网页设计期末作业

在当今快速变化的政策环境中,高效地分析和优化政策文档变得越来越重要。本文将深入探讨如何利用Deep Agents框架构建一个专业的政策优化多智能体系统,实现政策文档的智能分析和精准优化。 📋 智能体架构概述 我们构建的政策优化多智能体系统…

张小明 2025/12/31 21:04:42 网站建设

人防工程做资料的网站ps的logo设计制作

16GB显存驱动210亿参数:GPT-OSS-20B如何引爆中小企业AI革命 【免费下载链接】gpt-oss-20b-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/gpt-oss-20b-GGUF 导语 当85%的中小企业还困在"数据安全"与"AI成本"的两难困境中…

张小明 2025/12/31 21:04:11 网站建设

安全等级保护每个网站必须做吗百度新网站提交入口

2 总体方案设计 以农田节水灌溉系统为对象,采用合适的STM32硬件和软件系统,设计实现温室环境数据监测系统设计。 2.1 总体架构设计 温室环境数据监测系统由单片机、空气温湿度检测模块、按键输入模块、电源模块、继电器模块、土壤湿度传感器模块、OLCD液…

张小明 2025/12/31 21:03:39 网站建设