防止多实例应用程序环境中的重复条目
Preventing duplicate entries in Multi Instance Application Environment
我正在编写一个服务于 facebook API 的应用程序;共享等。我将所有这些共享对象从我的应用程序保存在数据库中,如果它已经被共享,我不想共享同一个对象。
考虑到我将在不同的服务器上部署应用程序,可能会出现两个实例都试图将同一对象插入到 table 的情况。
如何通过完全阻止应用程序来解决并发问题?我的意思是两个线程将尝试插入相同的对象并且它们必须同步但它们不应该阻止第三个线程插入完全不同的对象。
如果有办法从数据本身导出数据条目的主键,数据库将自行解决此类并发问题 -- 第二次插入将失败 'Primary Key constraint violation'。也许,Facebook API 提供的数据已经有一些唯一的 ID?
或者,你可以考虑一些分布式锁的方案,比如基于Hazelcast或者基于类似的数据网格。这将允许不同 JVM 共享记录状态,因此可以避免不必要的 INSERTS
.
我正在编写一个服务于 facebook API 的应用程序;共享等。我将所有这些共享对象从我的应用程序保存在数据库中,如果它已经被共享,我不想共享同一个对象。
考虑到我将在不同的服务器上部署应用程序,可能会出现两个实例都试图将同一对象插入到 table 的情况。
如何通过完全阻止应用程序来解决并发问题?我的意思是两个线程将尝试插入相同的对象并且它们必须同步但它们不应该阻止第三个线程插入完全不同的对象。
如果有办法从数据本身导出数据条目的主键,数据库将自行解决此类并发问题 -- 第二次插入将失败 'Primary Key constraint violation'。也许,Facebook API 提供的数据已经有一些唯一的 ID?
或者,你可以考虑一些分布式锁的方案,比如基于Hazelcast或者基于类似的数据网格。这将允许不同 JVM 共享记录状态,因此可以避免不必要的 INSERTS
.