Tomcat 集群环境中的 JDBC 连接池

2024-04-21

我对此相对很陌生,但我设置了一个 Tomcat 集群(使用mod_proxy来自httpd)和会话复制(单独的redis服务器)以实现容错。

我对这个设置有几个问题:

  1. 我的应用程序(spring/hibernate)每个用户都有不同的数据库。所以这里的问题是数据源(使用 spring 和 hibernate 进行持久化)是在 Tomcat 级别创建的。因此,无论我做什么连接池都将在服务器级别进行。

    根据集群配置,Tomcat 实例将创建自己的连接池。

    我想知道是否可以使用 Tomcat 在集群级别实现连接池,即是否有办法确保集群中的所有服务器都使用共享连接池?

  2. 我不想配置DataSource由于性能问题,在每个 Tomcat 实例上。在集群设置之前,应用程序部署在单台服务器上,DataSource配置为每个连接池中仅允许几个 (50) 个连接DataSource.

    现在在集群环境中,我无法在每个 Tomcat 上创建或拆分这些数量的连接,而且节点的动态注册也会产生更多问题。我还想知道如果连接池不可能或效率低下,是否有其他解决方案可以解决此问题?


我将以相反的顺序处理你的问题,因为第二个问题更简单。

Tomcat 中的数据库连接池无法在集群范围内配置:您必须为集群中的每个节点配置单独的池。但这不一定是坏消息...将节点配置为每个节点上的连接池中有 5 个、10 个或 100 个连接并没有什么问题。

确实,您最终可能会遇到这样的情况:一次有太多用户连接到数据库,从而导致数据库不堪重负,但单个节点也可能会发生这种情况。多节点在概念上没有什么不同,但对于单个节点来说也是如此。

关键是确保您的集群适当地平衡用户,这样您就不会受到例如用户数量的限制。每个节点有 5 个数据库连接,但一个节点上最终有 100 个用户,而其他节点每个节点只有 5 个用户。在这种情况下,热门节点(100 个用户)将必须共享这 5 个连接,而在其他节点上,每个用户都会获得一个属于自己的连接。

回到你的第一个项目,它更复杂。如果你有一个单独的database对于每个用户,那么连接池是不可能完成的事情,因为您每次都必须为每个用户建立一个新连接。那些联系aren't可以共用,至少在不小心的情况下是这样。听起来您有一个架构问题,您可能必须先解决该问题,然后才能确定该问题的技术解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat 集群环境中的 JDBC 连接池 的相关文章

  • PCRE 库版本太旧

    Bug Genie 3 需要 PCRE 库 8 0 或更高版本 你有 版本 7 8 2008 09 05 将您的系统更新到最新版本 你常用的来源 在我查看问题并尝试通过以下步骤更新我的 PCRE 库后 wget the latest sou
  • PHP/Apache 中的输出缓冲块如何工作?

    假设我将随机数据从 PHP 回显到浏览器 随机数据总量约为 XGb 回显以 YKb 块的形式完成 不使用 ob start PHP 和 Apache 缓冲区已满后 echo 调用是否会阻塞 客户端无法以与生成数据相同的速度使用数据 如果是
  • mod_mono 在新安装的 centos 上出现 EOF 错误

    我全新安装了 Centos 6 3 已完全更新 我已经从源安装了 mono xsp 和 mod mono 每个包都完美编译 它们都以 usr local mono 前缀安装 因此所有内容都位于 usr local mono 下 我已将 In
  • 如何配置 apache 服务器与 HTTPS 后端服务器通信?

    我将 apache 服务器配置为反向代理 如果我将后端服务器指定为 HTTP 则它可以正常工作 那是 我将虚拟主机 443 配置为 ProxyPass primary store http localhost 9763 store Prox
  • Apache:配置应用程序侦听器时出错

    当我尝试运行该应用程序时 我遇到了这个问题 警告 SetContextPropertiesRule Context 设置属性 源 到 org eclipse jst j2ee server CongressApp 没有找到匹配的 财产 20
  • Wordpress 主题管理面板显示本地服务器中的致命错误

    我有一个 WordPress 项目 这里我们使用主题jupiter 当我在本地 XAMPP 服务器上设置它时 它的主题选项不起作用 这个问题出在我的电脑上 但在另一台电脑上却正常 My XAMPP是最新版本 它显示的错误 Fatal err
  • 如何将多个域路由到多个节点应用程序?

    我习惯了典型的 Lamp Web 托管环境 您只需单击 cpanel 中的几个按钮 您的域就会被分区并映射到 htdocs 中的文件夹 我经常使用 Node js 但做同样的事情似乎并不那么简单 如果我有多个节点应用程序 并且我想将doma
  • 如何在 Intellij IDEA 中为 Apache Tomcat 指定自定义 JRE 路径?

    问题是如何指定自定义JRE路径为Apache tomcat in Intellij IDEA 当从以下位置启动应用程序时IDEA 看来 只需配置它的路径 路径jvm dll in Apache Tomcat监视器没有帮助 还有其他想法或方法
  • Servlet 包含 Tomcat 中的 HTTP 标头

    我有一个 servlet 它的请求调度程序包含另一个 servlet 包含的 servlet 设置了我想在包括小服务程序 因此 我在 include 方法中传入一个自定义 HTTPResponse 对象 该对象捕获来自 servlet 的所
  • Python:从 apache authnz_ldap 获取用户

    我正在通过 Apache2 的 authnz ldap 模块成功验证 ldap 用户 我不清楚如何在他们登录后获取他们的用户名 以便我可以通过任何以下表单 网页与他们交互 我尝试过典型的方法 os getenv os environ get
  • 一个文件夹中的多个 htaccess 文件,还是条件 AuthType Basic?

    我在本地服务器和实时服务器上使用相同的 htaccess 文件 并希望在测试服务器上使用相同的文件 以使代码管理更容易 目前 虽然我必须有一个不同的文件 因为我的测试服务器具有 htaccess 密码访问权限 AuthType Basic
  • Postman - 所需的 MultipartFile 参数不存在 - Spring,Java [重复]

    这个问题在这里已经有答案了 Edit 这个问题不同于 jQuery Ajax 文件上传 所需的 MultipartFile 参数 文件 不存在 https stackoverflow com q 29488852 2279082不同之处在于
  • 配置Apache将SSL客户端证书发送到后端服务器

    我想配置 Apache 以便它接收客户端证书 并将其传递到另一台服务器 我在用着 Windows 上的 Apache 2 0 65 后端服务器是基于 apache 的解决方案 IBM HTTP Server 我尝试了这个配置
  • openNLP 与 Solr 集成时出现异常

    我正在尝试将 openNLP 与 Solr 6 1 0 集成 我配置了架构和 solrconfig 文件 详细信息请参见 wiki 链接 https wiki apache org solr OpenNLP https wiki apach
  • 是否值得清理 Filter 中的 ThreadLocals 来解决线程池相关问题?

    简而言之 tomcat 使用线程池 因此线程被重用 一些图书馆使用ThreadLocal变量 但不要清理它们 使用 remove 所以实际上它们将 脏 线程返回到池中 Tomcat 具有在关闭时检测这些事情并清理线程局部变量的新功能 但这意
  • 如何在 PHP 中检查不完整的 POST 请求

    当连接速度较慢的远程 Web 客户端无法发送完整的 POST 请求时 我遇到了问题multipart form data内容 但 PHP 仍然使用部分接收到的数据来填充 POST大批 结果一个值 POST数组可能不完整 并且可能会丢失更多值
  • Django 与 mod_wsgi 在 apache - 500 错误:Authtype 未设置?

    尝试在 Dreamhost 上部署我的第一个 django 站点 我的这个工作正常 然后我不确定我做了什么让它停止工作 这是错误消息 crit client 74 72 99 26 configuration error couldn t
  • 配置 shiro.ini 以进行 JDBC 连接

    作为我新的一年学习新技术计划的一部分 我开始尝试使用 Apache Shiro 安全框架 我设法让基本示例正常工作 该示例将用户名 密码和角色存储在 shiro ini 文件中 但是当我修改 shiro ini 文件以使用 JDBC 时 它
  • Internet Explorer 8 + 放气

    我有一个非常奇怪的问题 我真的希望有人能给出答案 因为我不知道还能去哪里问 我正在用 C 编写一个 cgi 应用程序 它由 Apache 执行并输出 HTML 代码 我自己在 C 应用程序中压缩 HTML 输出 因为我的 Web 主机由于某
  • 在 Apache 上设置 websocket?

    所以我正在对 websockets 进行一些研究 我有几个问题似乎找不到明确的答案 如何在 Linux 服务器上设置 Web 套接字 有 Apache 模块吗 我可以吗have使用第 3 方 PHP 代码或类似代码 除了浏览器兼容性之外 问

随机推荐

  • 向循环中添加代码如何使其速度更快?

    我有一个带有内部循环的简单函数 它缩放输入值 在查找表中查找输出值 并将其复制到目的地 ftol ambient是我从网上复制的一个技巧 用于将float快速转换为int for i 0 i lt iCount i iScaled ftol
  • 我一直在尝试找到一种方式来展示两者gifs and videos mp4 ogg webm 在同一个标 签内 所以 如果在一个
  • 请描述您在尽量减少使用全局变量方面的挣扎[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ReplayKit 获取视频而无需转到 RPPreviewViewController

    我正在使用 ReplayKit 但我的问题是我需要获取视频 或临时视频 而不必通过 RPPreviewViewController 我正在使用以下内容 但必须使用 RPPreviewViewController 还有其他方法吗 void s
  • Windows 开箱即用支持的语言

    我被要求为一组 Windows 机器 我认为是 XP 编写一个 非常 简单的程序 如此简单以至于语言的选择并不是真正的问题 但是 我希望能够分发直接在 Windows 计算机上运行的二进制文件 脚本 而不需要预先安装任何解释器或虚拟机 我正
  • 如何使用 PKCS11Interop 管理网络故障并避免错误

    在 Safenet HSM 上使用 PKCS11Interop 时 出现此错误 方法 C OpenSession 返回 2147484548 在我的文档中 错误是 CKR SMS ERROR 安全消息系统的一般错误 可能由 HSM 故障或网
  • 如何在 php5/ubuntu 中安装 pspell?

    我正在尝试在 Ubuntu 中安装适用于 PHP 5 的 pspell 我已经安装了运行 pspell 所需的 aspell 库 如图所示here http www php net manual en pspell requirements
  • 如何在.NET中针对不同环境使用不同的.settings文件?

    NET 允许您使用 settings 文件来管理应用程序设置 我想单独存储生产 开发和测试设置 我可以这样做 EnvironmentSettings environmentSettings get the current environme
  • 如何在触摸事件上移动画布中的 ShapeDrawable

    我正在尝试在 Android 中实现绘图应用程序 用户应该能够选择和移动绘制的形状 目前我已经在绘图画布上静态绘制了一些矩形和文本 View mDrawingCanvas new View mContext ShapeDrawable re
  • 如何使用 Seaborn 修改 Violinplot 的边缘颜色

    我正在尝试更改 Seaborn 中小提琴的边缘颜色 下面的代码对我有用 ax sns violinplot data df x y SleepAmount hue Thr palette my pal split True linewidt
  • 用空元素拆分 Java 中的字符串

    我正在逐行读取 csv 文件 一行可以如下所示 String str 10 1 现在我想根据 来分割 String splitted str split 现在的问题是 这只会产生 2 个元素 但我想要 5 个元素 前两个元素应包含 10 和
  • 如何以编程方式更改 Windows 7 Aero/窗口边框颜色?

    我正在考虑制作一个程序 根据电池电量改变 Windows 7 的航空颜色 我对 C 相当陌生 我想知道如何以编程方式更改 Windows 7 Aero 我有这个代码 DllImport dwmapi dll EntryPoint 127 P
  • IllegalArgumentException:找不到片段 id 的视图

    正在抛出此异常 引起原因 java lang IllegalArgumentException 找不到片段 MainActivityFragment 37dff01 1 id 0x7f0e006b FFTAG 的 id 0x7f0e006b
  • 将nodejs应用程序部署到谷歌云平台[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我注册了谷歌云平台的免费试用 但我被卡住了 我的应用程序是一个使用express的节点服务器 它需要连接
  • 根据 $_POST 值填充字段

    我正在寻求有关我试图填写的表格的帮助 我通常会使用 onChange 函数 但我认为这不是一个选择 基本上我有一个
  • Spring Boot 外部 jar 未加载

    我有一个带有 spring boot 的 java 项目 我需要从外部文件夹加载 application properties 和依赖项 jar 我通过在类路径中使用 application properties 进行测试 并且 loade
  • 如何使用 Quartz2D 绘制可动画的标尺?

    我想用 Quartz2D 画一把简单的尺子的线条 仅供练习 由于我不知道如何在 iPhone 上以编程方式制作矢量图形 也许有人可以给我指点一个好的入门教程 正如普拉门指出的那样 石英 2D 文档 https developer apple
  • 由于级联触发器更新该行,该行未被删除

    我在删除表中的行时遇到问题 该表具有调用第二个表的触发器的触发器 该触发器更新第一个表中的行 这是描述 Table A id b table count Table B id a table id fk 表 A 有一个 BEFORE DEL
  • 我想在 Firebird 上获得 unix 时间

    我想在 firebird 中获取时间 类似于 Javascript 上的 GetTime 我已经创建了一个 但每天的时差增量并不那么准确 CREATE PROCEDURE GETTIMEINMILLISECONDS RETURNS MILL
  • Tomcat 集群环境中的 JDBC 连接池

    我对此相对很陌生 但我设置了一个 Tomcat 集群 使用mod proxy来自httpd 和会话复制 单独的redis服务器 以实现容错 我对这个设置有几个问题 我的应用程序 spring hibernate 每个用户都有不同的数据库 所