让我们考虑一下,我有一个托管在10台服务器上的简单错误跟踪系统,并且有一个集中式数据库。我必须确保错误ID在任何时候都是唯一的,当然ID应该是有意义的。
我能想到的其他几种选择
使用由JPA等ORM框架提供的ID生成策略(可以是序列生成器策略,或者更确切地说,可以采用表生成策略)。但是我认为这些策略是数据库的过载,因为我们要求它在将其插入表格之前生成ID。
我可以使用提供唯一ID的UUID,但这些ID没有意义。这些只是128位数字。
我们是否可以提出一种策略,让我们可以在应用程序级别创建ID并将其传递给Database以插入它。值得注意的是,它是一个分布式环境,其中可以有并发会话,但是在各种服务器中运行的应用程序生成的ID应该是唯一的。
在我提出问题之前写一篇文章的道歉但只是寻找最好的方法来处理这个要求并清除我在上面提到的方法中的任何神话:)