在我的网络服务中,我有一个用户表,其中包含名为“HITS”的列,现在当该用户类/表中的用户使用该网络服务时,“HITS”计数会增加 1。这涉及写入操作因此出现乐观/悲观锁。
我面临的问题是高并发场景,其中同一用户同时出现 100 个点击。
任何人都可以建议我一种策略,以避免当从同一用户的帐户同时使用网络服务时锁定用户行以更新“HITS”而导致的延迟吗?
或者
您还可以建议一种方法来更新一些我可以每 12 小时监控一次的变量,通过总结变量或类似的东西来生成“HITS”值?
正在使用 hibernate 和 EJB 无状态 session bean。
最佳答案
只需将每次点击插入一条记录到表all_hits
...
然后按照某个时间表 - 从该表中进行选择,然后插入到 hits_summary
表中,然后删除原始表。
关于java - 高并发写入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054412/