租户数据源分库调用feign接口出错

Blade 未结 2 174
tongyi
tongyi 剑侠 2025-07-25 09:27

image.pngimage.pngimage.png

2条回答
  • 2025-07-25 11:29

    在feign的实现类里这么写


    try {
        //这里获取租户id
        String tenantId = AuthUtil.getTenantId();
        //切换数据源
        DynamicDataSourceContextHolder.push(tenantId);
        //自定义逻辑
        xxxxxx
    } catch (Exception exception) {
        throw new ServiceException(exception.getMessage());
    } finally {
        //切回主数据源
        DynamicDataSourceContextHolder.poll();
    }



    0 讨论(0)
  • 2025-07-25 12:26

    如果部分租户没有配置数据源,用默认主数据源的情况下,加 DynamicDataSourceContextHolder.push(tenantId); 后会有影响吗?

    作者追问:2025-07-25 12:26

    具体业务逻辑需要你自己控制,哪些有哪些没有应该提前查出来。有就切,没有就不切

    作者追问:2025-07-25 12:27

    这里面涉及到多线程的情况下,request获取不到数据,所以就需要自行编码的形式来解决切换了

    0 讨论(0)
提交回复