multithreading - 使用 Snowflake JDBC 驱动程序的多线程
问题描述
我正在尝试使用 Snowflake 驱动程序在 API 中执行一组顺序查询。我在对 API 执行负载测试时发现异常行为,线程之间的查询混合并导致顺序丢失。
雪花查询历史显示跨线程共享同一会话的查询。有什么建议可以限制这种行为以确保线程特定的查询执行或为每个线程单独创建会话?
雪花驱动版本:
<dependency>
<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc</artifactId>
<version>3.13.7</version>
</dependency>
我在雪花中有以下赠款
- 角色 1 只能访问仓库 1
- 角色 2 只能访问仓库 2
在 Spring Boot API 中,我按顺序调用查询,如下所述。
use role ${xyz};
use warehouse ${abc};
当我按顺序访问 API 时,即使每个线程共享相同的会话 ID,查询也会按顺序执行,但是当给 API 查询的多个并发请求混合发生时,会引发授权错误
use role role1 ;
use role role2;
use role warehouse1;
解决方案
推荐阅读
- jestjs - 如何测试图表以查看它是否正确呈现
- gem5 - 在 Gem5 中控制内存带宽
- python - 如何在两个模块之间共享一个变量的副本?
- python - Python 请求使用自定义 dns 获取网站
- vb.net - vb.net 如何在不使用内存的情况下读取非常大文件的一小部分?
- python - 从整数输入中分离分组数字
- kubernetes - 具有复制和本地持久卷的 Kubernetes pod 调度?
- python - 使用 trackpy 进行粒子跟踪会产生“keframe”错误?
- django - 如何在 Django 3.1 中使用 jinja2
- html - 切换时复选框未打开菜单