Dropwizard / JDBI中的独立数据库读/写路径

时间:2018-07-25 00:38:12

标签: database scaling dropwizard

我想将所有写查询定向到主数据库,将所有读查询定向到副本数据库,而无需修改系统中的每个DAO 或在大多数情况下都具有两个DAO,我d希望它在后台透明地发生。

我的第一个想法是尝试拦截@SqlQuery@SqlUpdate批注,但我想知道是否有更内置的方法。

这似乎是扩展关系数据库的一种常见方法,但是我的搜索没有发现任何实质性的内容。有没有人能做到这一点?

1 个答案:

答案 0 :(得分:0)

如果要使用不同的数据库连接,则必须使用不同的配置创建DBI实例。然后,您将必须将每个现有的DAO拆分为一个DAO进行读取,并将一个DAO进行写入操作。使用

创建每个DAO的实例
ReadDAO readDAO = dbi.onDemand(ReadDAO.class);
WriteDAO writeDAO = dbi.onDemand(WriteDAO.class);