gpt4 book ai didi

java - 在 Tomcat 中使用动态数据源 - 进一步的问题

转载 作者:行者123 更新时间:2023-11-28 22:03:49 25 4
gpt4 key购买 nike

我从事的项目设计是为每个客户提供一个数据库。我设法阅读了 Tomcat 文档并建立了连接池。由于数据库是在客户注册时由应用程序自动创建的,因此我需要一种创建动态池的方法。以下关于堆栈溢出的帖子给出了所需内容的提示:

Using dynamic Datasource with Tomcat

我在网上找到了一个展示如何执行此操作的页面:

Writing and using a Tomcat ObjectFactory

我还有几个问题:

1- 谁负责管理池中的连接?在 context.xml 的数据源声明中,我们定义了一些参数来控制各个方面,如最大空闲时间和最大连接数等。tomcat 处理这个还是我必须在编码时的实现中处理它实现 ObjectFactory 接口(interface)的类?

2-据我了解,当连接关闭时,它们会返回到池中。假设我创建了一个最多有 20 个连接的动态池。然后有 30 个客户登录。因此池为前 20 个客户返回 20 个连接。当这些连接关闭时,它们会返回到池中,接下来的 10 个客户将请求连接到与池中已找到的数据库不同的数据库。问题是:池会自动删除 10 个连接并添加具有正确数据库的新连接吗?如果是这种情况,这真的比在没有池的情况下根据请求打开连接有优势吗? (询问是否考虑过负载过重的网站。如果我猜对了,连接丢失的数量可能会非常高,以至于无法证明池的用途:尽量减少从头开始创建连接)

3- 我还想问一下是否可以自己实现它(考虑到我是新手)或者我是否应该找到一个库来做这个(以防它不是这个领域初学者的任务) .

4- 连接池是否有任何替代方案来管理以有效方式动态添加的多个数据库的连接? (以防数据源无济于事)在类似情况下使用的方法是什么?

提前感谢您的努力。

最佳答案

在声明数据源时,您可以指定数据源类,例如 Oracle 数据源。它使用指定的参数为您管理数据源。最好让数据源自行管理。我试过写一个,它并不简单。

我认为数据源不适合您,我可能是错的。数据源需要在数据源的生命周期内固定的数据库 URL、用户名和密码。

为不同的用户使用不同的数据库会打破这一点。

看你上面给的引用,答案提到使用不同于数据源的资源。

关于java - 在 Tomcat 中使用动态数据源 - 进一步的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com