在我最近参加的有关Java开发人员职位的采访中提出了这个问题。
考虑存在大量的电子商务应用程序。每秒钟处理多个订单。要求是为每个成功的事务分配唯一的序列号,以使报告生成团队将在特定的时间范围内拉出所有成功的事务。关键要求是,所有成功的事务都应按顺序排列序列号,并且两者之间不应遗漏任何编号。所要解决的方案是,当发生许多潜在的失败事务(由于业务异常导致的回滚)时,您将如何确保所有成功的事务井然有序。
我尝试以多种方式从Java代码中处理此序列来回答问题。但是,面试官告诉我,这必须从数据库方面进行。我建议使用数据库序列,但是一旦序列增加,就无法在发生故障时将其递减。
有人可以帮我弄清楚如何做到这一点吗?从代码或从数据库的角度来看。提前致谢。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。