长安微网站建设,北京网站建设方案建设公司,宏基陆通工程建设有限公司网站,wordpress 分类目录seo插件一、背景 4月10日晚,因某方案需要,某同事将服务器时间由4月10日 18:51分改成了4月11日18:51; 修改几分钟后触发多个业务线阈值报警,大量客诉进线; 某同事发现修改时间时未摘量,迅速将时间恢复到正常:4月10日 18:57,并将该服务器部署所有的docker实例重启; …一、背景 4月10日晚,因某方案需要,某同事将服务器时间由4月10日 18:51分改成了4月11日18:51; 修改几分钟后触发多个业务线阈值报警,大量客诉进线; 某同事发现修改时间时未摘量,迅速将时间恢复到正常:4月10日 18:57,并将该服务器部署所有的docker实例重启; 10分钟后业务恢复正常。
服务部署情况:
k8s+docker;不同业务工程混部 问题描述 时钟被调成4月11日18:51-4月11日18:57期间,发号器生成了基于该时间段的ID,并贯穿业务全流程,同时暴露给了第三方。如果不处理数据,并继续沿用现在的算法,真正到4月11日18:51-4月11日18:57时,会产生大量ID冲突,引起二次风暴。 二、如何解决?
1、雪花算法描述
雪花算法是生成分布式唯一ID的方法之一,因为它的全局唯一性、高性能、时间有序、信息量大、高并发性能好、易于部署、不依赖第三方库等优点,被广泛应用。
我们也在雪花算法的基础上,设计了类雪花算法的分布式ID生成算法。
因为雪花算法依赖服务器时间,所以其有典型的缺点:时钟回拨问题。当时钟回拨时,会导致生成重复的ID。 不出意外的话,我们出了意外。。。
为了后面理解方便,这里简述下我们ID组成: