我对
database sharding
和从Java应用程序连接到分片数据库有一些基本的怀疑。
看了很多文章,目前给我的印象是分片操作本身应该由数据库管理员来执行,而不应该是应用程序开发人员的责任。 - 这是正确的吗?
我的第二个问题有点偏。
如果我尝试从 Java 应用程序连接到分片数据库,那么最终归结为选择不同的数据源(每个分片),然后对其执行 CRUD 操作。
关于这一点,我发现我们可以使用 Hibernate
Multi-tenancy
功能(Separate database
方式 - 考虑分片导致创建多个数据库)。
第二种方法是使用 Spring
AbstractRoutingDatasource
功能根据当前上下文动态确定实际的数据源。
以上假设是否正确? 还有其他标准方法来执行任务吗?
请考虑这是一个概念问题,因为我还有很多疑问。任何线索表示赞赏。