java - 高并发写入数据库

标签 java hibernate concurrency locking ejb

在我的网络服务中,我有一个用户表,其中包含名为“HITS”的列,现在当该用户类/表中的用户使用该网络服务时,“HITS”计数会增加 1。这涉及写入操作因此出现乐观/悲观锁。

我面临的问题是高并发场景,其中同一用户同时出现 100 个点击。

任何人都可以建议我一种策略,以避免当从同一用户的帐户同时使用网络服务时锁定用户行以更新“HITS”而导致的延迟吗?

或者

您还可以建议一种方法来更新一些我可以每 12 小时监控一次的变量,通过总结变量或类似的东西来生成“HITS”值?

正在使用 hibernate 和 EJB 无状态 session bean。

最佳答案

只需将每次点击插入一条记录到表all_hits...

然后按照某个时间表 - 从该表中进行选择,然后插入到 hits_summary 表中,然后删除原始表。

关于java - 高并发写入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054412/

相关文章:

Java:无法从静态上下文错误中引用非静态变量值

java - 如何在JSP中注销后禁用浏览器后退按钮?

java - 使用 jsf 进行多重 CRUD 的最佳策略

ruby-on-rails - ActionController::Live - Rails 中的 SSE

c++ - 将 std::condition_variable 与 std::timed_mutex 一起使用

java - Guice @Provides 方法与提供者类

java - 使用 Java 测试登录时 Selenium 中的 NoSuchElementException

java - 注释@Id 和@GeneratedValue(strategy = GenerationType.IDENTITY) 有什么用?为什么世代类型是身份?

java - 使用 hibernate 通过单个查询连接到不同的数据库

google-apps-script - 谷歌应用脚​​本: does the 30 simultaneous executions limitation apply to the owner of the script or the user who executes it?