- 博客(3)
- 收藏
- 关注
原创 记一次线上问题——kafka消息积压以及后续消费逻辑优化
找运维临时扩充消费者实例,增加4个消费者(分区数12,原有8个消费者,增加后消费者数量与分区数量一致,消费者配置concurrency=1)。因为变价都是一次性的,只是突发出现高峰,所以几分钟后回复正常。批量查询商品详情大概需要50-60ms,批量通知审核结果暂不考虑,供应商侧回复容易出现死锁,所以采用异步处理。理论上优化后在8个消费者前提下,1.7w条消息的消费时间只需要10秒,并且不会增加供应商系统压力(之前出现过大量请求中反查供应商接口,把对方系统打崩的情况)向供应商系统提交订单失败。
2025-11-05 16:09:34
201
原创 记一次奇怪的线上死锁
摘要 钉钉告警发现下单死锁问题,经排查发现死锁源于两个事务使用不同索引路径更新同一行数据:事务A通过二级索引更新库存,事务B通过主键更新供应商信息。由于InnoDB行锁加在索引上,导致两个事务分别持有对方需要的锁,形成循环等待。解决方法包括统一使用主键索引更新或引入分布式锁。该案例突破了常见死锁场景的认知,提醒开发者遇到异常问题时应先质疑自身假设。
2025-09-17 16:45:25
674
原创 java连接mysql数据库开发国际化项目,时间类型选择以及时区参数设置
MySQL时区与JDBC参数对时间存储影响分析 摘要: 本文分析了MySQL时区设置与JDBC参数对时间类型存储的影响。MySQL中TIMESTAMP类型会进行UTC转换,而DATETIME直接存储字面量。测试表明:1)ZonedDateTime能正确处理时区转换,LocalDateTime存储可能出错;2)preserveInstants参数关闭会导致时区信息丢失;3)forceConnectionTimeZoneToSession参数能确保会话时区正确。结论指出,在跨时区应用中,应优先使用ZonedDa
2025-05-28 15:05:05
1282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅