首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jooQ春季启动多模式(读-写分离)

问jooQ春季启动多模式(读-写分离)
EN

Stack Overflow用户
提问于 2017-04-06 12:39:21
回答 1查看 1.5K关注 0票数 4

我想在弹簧引导中使用jooQ。我有主从体系结构,所以我想将jooQ与主从体系结构(主从结构用于写,从结构用于读)。

我该怎么做。现在我使用pom.xml来配置jooQ

代码语言:javascript
复制
<configuration>
    <jdbc>
        <driver>com.mysql.jdbc.Driver</driver>
        <url>${datasource.primary.url}</url>
        <user>${datasource.primary.username}</user>
        <password>${datasource.primary.password}</password>
    </jdbc>
    <generator>
        <name>org.jooq.util.DefaultGenerator</name>
        <database>
            <name>org.jooq.util.mysql.MySQLDatabase</name>
            <includes>.*</includes>
            <excludes/>
            <inputSchema>jpa</inputSchema>
        </database>
        <generate>
            <deprecated>false</deprecated>
        </generate>
        <target>
            <packageName>com.gensrc.model</packageName>
            <directory>src/main/java</directory>
        </target>
    </generator>
</configuration>

然后只需要自动安装DSLContext

但我现在该怎么改变我的代码。

EN

回答 1

Stack Overflow用户

发布于 2017-04-11 08:33:37

根据你的评论:

我想将我所有的写查询路由到主&我所有的读查询到从。

我不太确定write=master和read=slave之间这种难以区分的区别会不会是个好主意。有时,您可能需要在同一事务边界内(即读取未提交的数据)从主服务器读取数据,如果将读取的查询发送给从服务器,则会产生错误的结果。

因此,实现此路由的最佳位置是有单独的DataSource实例并相应地将它们注入jOOQ。然后,您将显式地、透明地将服务层中的主从分离为jOOQ。

当然,您可以通过使用jOOQ ExecuteListener并根据查询类型(ExecuteContext.type())为jOOQ提供正确的JDBC Connection来实现您的原始需求,但我认为这种情况很快就会中断。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43255491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档