当前位置: 首页 > 知识库问答 >
问题:

使用MySQL和Spring的多租户方法的可伸缩性

戚良弼
2023-03-14

我使用了一个多租户体系结构,遵循动态数据源路由一文,但是动态地(在用户注册时)创建新的租户(数据源)。

一切正常,但我担心可伸缩性。该应用程序阅读量很大,今天我们有10个租户,但我们将向公众开放该应用程序,这一数字将大幅增加。

使用以下代码创建每个用户数据源:

            BasicDataSource ds = new org.apache.commons.dbcp.BasicDataSource();
            ds.setDriverClassName(Driver.class.getName());
            ds.setUsername(dsUser);
            ds.setPassword(dsPassword);
            ds.setPoolPreparedStatements(true);
            ds.setMaxActive(5);
            ds.setMaxIdle(2);
            ds.setValidationQuery("SELECT 1+1");
            ds.setTestOnBorrow(true);

这意味着它正在为每个用户创建至少2个最多5个连接。

MySQL服务器(4个CPU 2.3Mhz/8GB Ram/80GB SSD)支持多少连接和模式?我如何通过更改数据源参数或MySQL配置来改进它?

我知道这个答案取决于许多附加信息,只需在评论中提问即可。

共有1个答案

郭修平
2023-03-14

在大多数情况下,每秒的连接数不会超过300个。如果您添加了良好的缓存机制,比如memcached,就可以实现这一点。如果您有超过1000个连接/秒,则应该考虑持久连接和连接池。

 类似资料:
  • 我正试图在spring boot中开发一个REST API,并将React作为前端。React将发送前端发生的GET或POST请求,以通过REST API修改后端的MySQL数据库。在我的应用程序中,用户可以在应用程序中有多个公司,每个公司的数据彼此隔离。我在Spring遇到过多租户。如何实现REST API??如何为这个多租户配置React应用程序??Spring的反应核心有用吗??。任何我能找

  • 我试图掌握如何使用Hibernate、Spring和MySQL实现多租户。对于第一个游乐场示例,我选择了单独的数据库方法:每个租户都有自己的数据库,名为accodingly。此外,还使用另一个数据库来管理租户。特定于租户的数据库保存了一些员工数据。对于第一种方法,我不强制用户进行身份验证。 我发现很难得到关于这个话题的全面教程,这就是为什么我现在有点迷路。当我尝试部署Tomcat时,会收到以下消息

  • 我正在使用spring 3.0开发一个多租户应用程序,需要根据租户将文件上传到FTP服务器或从FTP服务器下载文件。对于每个租户,我们在同一个FTP服务器中有不同的FTP位置。您能帮助我根据租户使用spring 3配置/更改FTP位置吗。?

  • 我用JBossas7创建了一个新的可伸缩应用程序。创建之后,添加MySql墨盒。但是当我使用SSH登录到gear时,我无法看到mysql目录。同样,当尝试使用sqlplus时,会引发command not found错误。 我还尝试使用JDBC使用一个简单的Java应用程序连接到数据库。在Openshift环境中使用了Valuse变量。出现连接超时异常。 我是不是漏掉了一些基本的东西?

  • 我在创建可以动态连接到多个数据库的spring boot应用程序时遇到问题,具体取决于用户输入。基本上,应用程序在不同的数据库上运行相同的sql查询。建模我的尝试在此之后,我收到以下错误: -- 配置类: 属性文件: 关于我如何实现这一点有什么想法吗?正如你所知,我对这种多数据库配置还不是非常精通。

  • 我们正面临着解决这个问题的艰难时刻!我们正在尝试在不使用默认租户的情况下为Spring Boot服务使用MTA。这意味着当当前上下文中没有租户时,我们希望从我们的CurrentTenantIdentifierResolver实现返回null。这在我们用JavaEE+Hibernate+Deltaspike数据构建的其他服务中运行良好,但在Spring服务启动时失败。 异常消息如下:“由:org.h