我在使用负载均衡器的亚马逊云上将 Hibernate ORM 与 MySQL 结合使用。
我现在正在切换到 GenerationType.Table,我想知道您如何进行集群 hibernate ,这样我就不会遇到 ID 在多台机器之间发生冲突的问题?
最佳答案
首先,您可以在不对数据库进行集群的情况下对中间件进行集群。这将意味着使用缓存解决方案来容纳更多流量。
当需要对数据库进行集群时,最简单的设置是主从复制,其中写入仅进入主模式。这样就不用担心PK冲突了。
对于多主复制,MySQL 提供 support for clustering the AUTO_INCREMENT
主键,但对于 TABLE
generator ,你可能会遇到冲突。更多,TABLE
generator scales poorly compared to IDENTITY
.
对于多主复制,我认为你最好使用 UUID Primary Keys , 避免 master 并发插入数据的冲突。然而,UUIDs don't mix well with the InnoDB clustered index approach .
关于mysql - 使用 GenerationType.Table 时如何集群 Hibernate ORM 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282666/