---
title: "负载均衡（ LoadBalance）策略 - JDBC 驱动程序  V2.4.9 | OceanBase 文档中心"
description: 负载均衡（ LoadBalance）策略 OceanBase Connector/J 的 LoadBalance 模式是针对每一个新建的 Connection 对象的动作的，每次新建 Connection 对象时，会从 Host 列表中通过负载均衡策略最终选择一个 Host 进行连接的创建。基于配置文件的 LoadB…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*bhcER5Qvet8AAAAAAAAAAAAADiGDAQ/original) JDBC 驱动程序 V 2.4.9

# 负载均衡（ LoadBalance）策略

更新时间：2026-07-22 17:45:58

[编辑](https://github.com/oceanbase/connector-j-doc/edit/V2.4.9/zh-CN/300.user-guide/900.failover-and-load-balancing/200.load-balancing-policy.md)  

OceanBase Connector/J 的 LoadBalance 模式是针对每一个新建的 Connection 对象的动作的，每次新建 Connection 对象时，会从 Host 列表中通过负载均衡策略最终选择一个 Host 进行连接的创建。基于配置文件的 LoadBalance 可以监控相应的配置文件目录，并在更新配置文件后进行感知，在每次执行 getConnection 时不用修改 URL 就可以更新负载均衡策略、Host 列表等信息。

## 负载均衡相关策略

OceanBase Connector/J 通过配置拓展配置信息中的 `OBLB_STRATEGY` 和 `LOAD_BALANCE_STRATEGY`，以及 URL Option 中的 `loadBalanceStrategy` 配置项的值，可以实现 3 种负载均衡策略。策略取值如下表所示。

| 算法 | 特性 | 备注 |
| --- | --- | --- |
| RANDOM | 随机 | 默认算法 |
| SERVERAFFINITY | 加权 | 加权随机 |
| ROTATION | 轮询 | 轮询 |

## 负载均衡组选择策略

OceanBase Connector/J 当前只支持一种多组 Host 之间的负载均衡策略，对应拓展配置信息中的 `OBLB_GROUP_STRATEGY`。策略取值如下表所示。

| 算法 | 特性 | 备注 |
| --- | --- | --- |
| ROTATION | 轮询 | 默认算法 |

## 黑名单策略

黑名单有添加策略和删除策略，对应拓展配置信息中的 `OBLB_BLACKLIST` 及其子配置项 `REMOVE_STRATEGY`（黑名单恢复）和 `APPEND_STRATEGY`（黑名单添加）。

OceanBase Connector/J 当前只支持两种黑名单添加策略，对应配置项 `APPEND_STRATEGY`。策略取值如下表所示。

| 算法 | 特性 | 备注 |
| --- | --- | --- |
| NORMAL | 普通策略 | 默认策略，只要 Host 的 Connect 动作抛出网络异常就添加到黑名单，不需要其他的参数配合。 |
| RETRYDURATION | 时间段内重试 | 在一段时间内重试了指定次数就会添加到黑名单。相关配置包括 `RETRYTIMES` 和 `DURATION`。`DURATION` 单位为毫秒。例如，`(RETRYTIMES=3) (DURATION=100)` 表示在在100 ms 时间内第 3 次 Retry 失败后将该 Host 加入黑名单。 |

OceanBase Connector/J 当前只支持一种黑名单删除策略，对应配置项 `REMOVE_STRATEGY`。策略取值如下表所示。

| 算法 | 特性 | 备注 |
| --- | --- | --- |
| TIMEOUT | 超时 | 默认策略，超过 `TIMEOUT` 指定的时间就会将 Host 从黑名单中移除。单位为毫秒。 |

### 黑名单策略示例

```java
String url = "jdbc:oceanbase:loadbalance://@(NET_SERVICE_NAME=(DESCRIPTION=
  (OBLB=ON)
  (OBLB_RETRY_ALL_DOWNS=120)
  (OBLB_GROUP_STRATEGY=ROTATION)
  (OBLB_BLACKLIST=
      (
        REMOVE_STRATEGY=(
          (NAME=TIMEOUT)
          (TIMEOUT=100)
        )
      )
      (
        APPEND_STRATEGY =(
          (NAME=RETRYDURATION)
          (RETRYTIMES=3)
          (DURATION=100)
        )
      )
  )
  (ADDRESS_LIST=
     (OBLB_STRATEGY=SERVERAFFINITY)
     (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=port1)(WEIGHT=1))
     (ADDRESS=(PROTOCOL=tcp)(HOST=host2)(PORT=port2)(WEIGHT=10))
  )
  (ADDRESS_LIST=
     (OBLB_STRATEGY=RANDOM)
     (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(port=port3))
     (ADDRESS=(PROTOCOL=tcp)(HOST=host4)(port=port4))
  )
  (ADDRESS_LIST=
     (OBLB_STRATEGY=ROTATION)
     (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(port=port3))
     (ADDRESS=(PROTOCOL=tcp)(HOST=host4)(port=port4))
   )
   (CONNECT_DATA=(SERVICE_NAME=OBDATABASE))
))/OBDATABASE?rewriteBatchedStatements=true&allowSendParamTypes=true&prepStmtCacheSize=1000";
Connection = DriverManager.getConnection(url);

```

## 相关配置项

| 字段名称 | 含义 | 默认值 | 备注 |
| --- | --- | --- | --- |
| DESCRIPTION | 包含连接的描述信息 | `DESCRIPTION=()`，括号“()”内是该连接的相关描述。 | 无 |
| OBLB | 负载均衡开关，可以设置在 `DESCRIPTION` 下，也可以设置在 `ADDRESS_LIST` 下。 | `OFF` | 驱动内部会忽略该参数，因为拓展配置方式只有使用 LoadBalance 的情况，且在 `ADDRESS_LIST` 下也不会生效，需要之后进行补充配置。 |
| LOAD_BALANCE | 负载均衡开关，可以设置在 `DESCRIPTION` 下，也可以设置在 `ADDRESS_LIST` 下。 | `OFF` | 与 `OBLB` 等价。 |
| OBLB_RETRY_ALL_DOWNS | `DESCRIPTION` 下的配置信息，表示所有的 Host 尝试重连的次数。 | 120 | 与 URL Option 中的 `retryAllDowns` 等价。 |
| OBLB_STRATEGY | LoadBalance 策略，可以设置在 `DESCRIPTION` 下，也可以设置在 `ADDRESS_LIST` 下。 | `RANDOM` | 负载均衡策略，如果设置在 `DESCRIPTION` 下，则每个 `ADDRESS_LIST` 会默认采用该策略；如果设置在 `ADDRESS_LIST` 中，则会采用这个特别设置的策略，而忽略 `DESCRIPTION` 下的配置。 |
| LOAD_BALANCE_STRATEGY | LoadBalance 策略，可以设置在 `DESCRIPTION` 下面，也可以设置在 `ADDRESS_LIST` 下。 | `RANDOM` | 与 `OBLB_STRATEGY` 等价。 |
| OBLB_GROUP_STRATEGY | 多个 `ADDRESS_LIST` 之间的访问策略。 | `ROTATION` | 当前只有一种策略。 |
| OBLB_BLACKLIST | `DESCRIPTION` 下的配置信息。 `OBLB_BLACKLIST` 后的括号 “()” 内是黑名单的相关配置包括 `REMOVE_STRATEGY` 和 `APPEND_STRATEGY`。 | `OBLB_BLACKLIST=()`，括号“()”内是该黑名单的相关配置描述。 | 如果不配置 `OBLB_BLACKLIST`，将会使用默认的黑名单策略，也就是 `REMOVE_STRATEGY` 和 `APPEND_STRATEGY` 策略。 |
| REMOVE_STRATEGY | `OBLB_BLACKLIST` 下的配置。 | `REMOVE_STRATEGY` 中都是和黑名单洗白策略相关的配置。`REMOVE_STRATEGY=()`，括号“()”内是一个 Host 从黑名单移除的策略配置信息。 | 如果不配置 `REMOVE_STRATEGY`，将会使用默认的 `TIMEOUT` 策略，即超过指定时间后 Host 将会被从黑名单内清除。 |
| APPEND_STRATEGY | `OBLB_BLACKLIST` 下的配置，`APPEND_STRATEGY` 中都是加入黑名单的策略相关配置。 | `APPEND_STRATEGY=()`，括号“()”中的都是一个 Host 加入到黑名单的策略配置信息。 | 如果不配置 `APPEND_STRATEGY`，将会使用默认的 `NORMAL` 策略，即只要连接失败就会将 Host 加入黑名单。 |
| NAME | `APPEND_STRATEGY` 或 `REMOVE_STRATEGY` 的配置，可以分别指定 `APPEND_STRATEGY` 的名字和 `REMOVE_STRATEGY` 的名字。 | `NAME=` 表示名字的字符串，如果不是特定的名字中的某一个则会报错。 | 在 `REMOVE_STRATEGY` 下可选的值有`TIMEOUT`。在 `APPEND_STRATEGY` 中可选的值有 `RETRYDURATION` 和 `NORMAL`。 |
| TIMEOUT | `REMOVE_STRATEGY` 中 `NAME` 为 `TMEOUT` 时的选项。 | `TIMEOUT=` 指定超时时间，默认为 50ms。 | 与 URL Option 中的 `loadBalanceBlacklistTimeout` 等价。 |
| RETRYTIMES | `APPEND_STRATEGY` 中 `NAME` 为 `RETRYDURATION` 时的配置项之一。 | 在 `DURATION` 时间内重试次数的阈值，超过该阈值的 Host 将会被加入到黑名单。 | 需要和 `DURATION` 配合使用。 |
| DURATION | `APPEND_STRATEGY` 中 `NAME` 为 `RETRYDURATION` 时的配置项之一。 | `RETRYTIMES` 后如果时间超过了 `DURATION`，则该 Host 将会被加入到黑名单。 | 需要和 `RETRYTIMES` 进行配合。 |
| ADDRESS_LIST | `DESCRIPTION` 下的配置信息，可以是一组 `ADDRESS` 配置信息，也可以配置自己独立的 `OBLB_STRATEGY`。各个组之间按照 `OBLB_GROUP_STRATEGY` 来进行选择。 | `ADDRESS_LIST=()`，括号“()”内是该组 `ADDRESS` 的描述信息。 | 无 |
| ADDRESS | `ADDRESS_LIST` 下的配置信息，可以配置 Host 相关的信息，包括 `hostname`、`port` 和权重等。 | `ADDRESS=()`，括号“()”内是该 `ADDRESS` 的描述信息。 | 无 |
| HOST | `ADDRESS` 下的配置信息，当前 Host 的 `hostname`。 | 无 | 无 |
| PORT | `ADDRESS` 下的配置信息，当前 Host 的端口号。 | 无 | 无 |
| WEIGHT | `ADDRESS` 下的配置信息，当前 Host 的权重。 | 无 | 只有在 `OBLB_STRATEGY` 为 `SERVERAFFINITY` 会被识别，其他情况都会被忽略。 |
| PROTOCOL | `ADDRESS` 下的配置信息，当前 Host 的网络协议。 | 无 | 当前该字段没有意义，主要作用是为了兼容 Oracle 的 Local Naming Parameters 配置格式。 |
| CONNECT_DATA | 数据库服务标识信息下的信息。 | 无 | 主要作用是为了兼容 Oracle 的 Local Naming Parameters 配置格式。 |
| SERVICE_NAME | Schema 信息。 | 无 | 主要作用是为了兼容 Oracle 的 Local Naming Parameters 配置格式。 |

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
