Java 应用程序 RAC 感知

问题描述 投票:0回答:1

从开发人员的角度来看,是否有必要知道应用程序托管在 RAC Oracle 数据库上?我们是否需要添加任何额外的机制来使 Java 应用程序能够感知 RAC?即使出现单节点故障,应用程序也能保持数据库连接吗?我们是否需要对 Java 应用程序执行任何额外的 RAC 感知测试?

java oracle jdbc
1个回答
0
投票

这取决于你想要什么。

  • 您想要零停机修补吗?
  • 需要平衡节点之间的负载吗?
  • 您的应用程序是否只想在发生故障时重新连接到任何幸存的节点?

以下是我的建议:

  • 不要使用默认的数据库服务进行连接,为您的应用程序创建专用的数据库服务
  • 使用 HikariCP 或 UCP 连接池
  • UCP 是 Oracle 的 RAC 感知负载平衡连接池库。请参阅 此项目 查找如何将 Hibernate/Spring 与 UCP 集成的示例
  • RAC“仅”保证数据库启动并运行,即使集群节点之一丢失。如果您的应用程序还想保留未提交事务中的数据,则必须在应用程序中实现重试机制,或者必须将连接池配置为使用“JDBC 应用程序连续性”数据源。
© www.soinside.com 2019 - 2024. All rights reserved.