起因是昨天写一个实时流任务,订阅一个 topic,处理后写到下游.框架搭起来想当然就上线了.任务起来之后可以看到消费,但下游迟迟看不到数据.
刷了十几分钟后,瞟了眼数据源的监控,消息数指数级上升,几个 consumer 全部 1000W+的 lag.
立马停了任务,review 了下代码,发现 sink 的 topic 直接取了 message 的 topic.于是变成了消费->生产->消费的死循环.并且每次消费和生产,消息数翻倍.
联系了队列的生产和消费的同学,重启了消费任务,重复数据影响也不是很大,没有影响到业务核心流程,也没有用户反馈.提心吊胆了一下午,但也还是抹过去了.
整个晚上人都挺懵的.今天一度不敢上线.想了下,还好只跑了十几分钟,并且非核心流程.假如是晚上上线,这样一个放大器跑一晚上.怕是整个集群的存储都要崩掉...
公司的队列没有鉴权机制,生产和消费都很随意.感觉这样也是有问题的.
不过,最主要的是,对待代码还是要敬畏,工作久了,就没有刚开始的那种初心了,感觉自己可以 cover 的住,变的傲慢.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.