JonLv 的个人博客   记录精彩的程序人生

Open Source, Open Mind,
Open Sight, Open Future!

存档: 2024 年 08 月 (3)

记一次 MQ 消费失败引发的一系列问题

本文通过一个真实的案例,揭示了在分布式系统中排查问题时,看似诡异的现象背后往往隐藏着简单的原因。在排查 Pulsar 消息消费异常问题时,作者通过仔细对比日志和数据库记录,最终发现问题根源在于环境混淆。这个案例提醒我们,在排查问题时,要保持怀疑精神,全面考虑各种可能性,避免被表面现象所迷惑。

记一次 Zookeeper 高负载引发的一系列问题 有更新!

在一次系统中,Zookeeper (ZK) 突然出现高负载,导致Provider和Consumer与ZK的连接异常,尽管系统一直提示连接异常,服务之间的调用却依然正常。通过排查和分析,发现ZK的高负载与连接超时导致的异常有关,但需要进一步探讨为什么即使ZK连接异常,Dubbo服务间的调用仍然正常,以及ZK高负载的根因。

记一次分布式 ID 主键冲突问题

在一次UAT环境测试中,发现了主键冲突问题,原因是UAT和Prod共用相同的数据库,但Zookeeper配置的Host不同。分布式ID生成器在不同环境下生成了相同的ID,导致冲突。这种问题在项目初期可能出现,但随着Prod环境自增值的增加,冲突应会减少。然而,由于运维在一次故障排查中清理了生产ZK的缓存,导致自增序列重置,冲突问题再次出现。为避免类似问题,建议在分布式ID生成算法中引入更多唯一元素,如更长的时间戳、机器码和序列号,参考雪花算法,以确保ID的唯一性。