重负荷时出现Spring Oauth2.0性能问题

时间:2018-01-20 18:36:40

标签: java mysql spring oauth spring-oauth2

我们在我的一个应用程序中实现了Spring OAuth 2.0,当我们对sam进行了性能测试时,应用程序开始抛出异常 DuplicateKeyException并且我们假设发生这种情况是因为同一用户尝试多次创建令牌。我们将通过确保不同时为同一用户调用create token来避免此问题。

我们正在申请中使用密码授予流程。

我们注意到的一个观察是,当并发性低时,令牌创建和验证完全正常,一旦负载增加,服务的响应时间也会增加。从日志中我们可以看到有很多sql事务超时,间歇性地出现了死锁。我们使用的是MySQL,用于创建表的SQL脚本如下所示。

create table oauth_access_token (
  token_id VARCHAR(256),
  token LONGVARBINARY,
  authentication_id VARCHAR(256) PRIMARY KEY,
  user_name VARCHAR(256),
  client_id VARCHAR(256),
  authentication LONGVARBINARY,
  refresh_token VARCHAR(256)
);

create table oauth_refresh_token (
  token_id VARCHAR(256),
  token LONGVARBINARY,
  authentication LONGVARBINARY
);

可以在此java class中找到所使用的查询。

有没有办法通过优化表结构或向列添加索引来解决此问题。

发现的一个相关问题是Spring OAuth2 JDBCTokenStore performance and database schema

0 个答案:

没有答案