【问题标题】:Spring boot and ProxySQL together, does it work?Spring boot 和 ProxySQL 一起用,有用吗?
【发布时间】:2021-04-11 08:19:36
【问题描述】:

我们一直在审查不同的软件来平衡我们的 Spring Boot 应用程序而不更改我们的应用程序,看起来这是最好的解决方案,不需要更改任何一行代码,只需连接到 proxysql 容器而不是 mysql 容器,并且它应该工作OOB。但是,我们无法让任何查询规则正常工作。

我们有几个 Spring Boot 应用程序,这是我的设置:(ProxySQL 是最新版本,Spring boot 也是最新版本)

  1. 1个mysql 8.0.22 master和2个slave,都运行在不同的容器中
  2. 3 个 proxysql 容器
  3. 3个mysql企业用户

在我的proxysql conf 文件中,我将所有用户的默认组设置为写入组(10),它是复制组中唯一的master。从站的 read_only=1。

我的 Spring Boot 应用程序有 initSql 命令:

SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

所以如果我的应用程序中有上面的 initSql 语句,就会出现这个错误:

ProxySQL Error: connection is locked to hostgroup 10 but trying to reach hostgroup 20

如果我删除 initSql 语句,一切正常(因为所有 sql 语句都被路由到主服务器)。

如果我添加一条规则,sql 是Select ? 并将该规则路由到读取组,应用程序将无法启动。

[WARN ] 2021-01-04 11:08:08.913 [main] SqlExceptionHelper - SQL Error: 0, SQLState: null
[ERROR] 2021-01-04 11:08:08.913 [main] SqlExceptionHelper - Failed to validate a newly established connection.

再往下我有这个:

nested exception is org.springframework.orm.jpa.JpaSystemException: Unable to acquire JDBC Connection; nested exception is org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection

如果我禁用该规则并启用另一个规则:

select organizati0_.org_id as org_id1_14_, organizati0_.org_desc as org_desc2_14_, organizati0_.org_name as org_name3_14_, organizati0_.org_type as org_type4_14_ from ems_org organizati0_ where organizati0_.org_name=? and organizati0_.org_type=?

那我会遇到和SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';一样的错误:

ProxySQL Error: connection is locked to hostgroup 10 but trying to reach hostgroup 20

(以上与任何SET命令无关,仍然失败)

也试过了

set mysql-set_query_lock_on_hostgroup=0;
load mysql variables to runtime;

还是一样的错误。

所以我根本无法让它工作。我是proxysql新手,有没有人成功将proxysql连接到spring boot应用?

谢谢

【问题讨论】:

    标签: mysql spring spring-boot spring-mvc proxysql


    【解决方案1】:

    确实有效! 我之前在我的 proxysql 集群的 node2 上设置了set_query_lock_on_hostgroup=0,不知道该变量是每个节点的,并且不会跨 proxysql 集群同步。我必须在所有节点或 cnf 文件中设置它。

    谢谢

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 2018-07-16
      • 1970-01-01
      • 2019-10-28
      • 2018-12-24
      • 2015-05-15
      • 2021-10-17
      • 1970-01-01
      相关资源
      最近更新 更多