基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
使用 CDC 模式
更新时间:2024-07-11 14:26:24
本文介绍如何使用 CDC 模式。
前提条件
在使用 CDC 模式功能前,需要确认 OceanBase 版本信息,请参考 产品发布记录 。
配置 oblogproxy
下面的操作均在 oblogproxy 项目目录中进行,oblogproxy 项目目录默认为 /usr/local/oblogproxy。
oblogproxy 的配置文件默认放在 conf/conf.json。
需修改 conf/conf.json 的如下配置:
"ob_sys_username": ""
"ob_sys_password": ""
(可选项)oblogproxy 需要配置用户的用户名和密码,用户必须是 OceanBase 的 sys 租户的用户才能连接。
注意
此处的用户名不应包含集群名称或租户名称,且必须具备 sys 租户下 OceanBase 数据库的读权限。
首先,获取加密的用户名和密码。
./bin/logproxy -x username
./bin/logproxy -x password
然后将结果分别保存到 conf/conf.json 文件的 ob_sys_username 和 ob_sys_password 配置项。
有关于 oblogproxy 配置的详细介绍,可参考 oblogproxy 配置。
运行 oblogproxy
启动 oblogproxy 服务
先进入 oblogproxy 项目目录默认为 /usr/local/oblogproxy。
cd /usr/local/oblogproxy
再通过以下命令启动服务。
./run.sh start
使用 oblogclient 订阅
在使用之前,您需要确定自己是否安装了 Maven 依赖。
<dependency>
<groupId>com.oceanbase</groupId>
<artifactId>oblogclient-logproxy</artifactId>
<version>x.y.z</version>
</dependency>
您可参考下文编写代码:
ObReaderConfig config = new ObReaderConfig();
// 设置 OceanBase root server 地址列表,格式为(可以支持多个,用';'分隔):ip1:rpc_port1:sql_port1;ip2:rpc_port2:sql_port2
config.setRsList("xxx.xxx.xxx.1:2882:2881;xxx.xxx.xxx.2:2882:2881");
// 设置用户名和密码(非系统租户)
config.setUsername("r***");
config.setPassword("****");
// 设置启动位点(UNIX 时间戳,单位 s),0 表示从当前时间启动。
config.setStartTimestamp(0L);
// 设置订阅表白名单,格式为:tenant.db.table, '*'表示通配。
config.setTableWhiteList("sys.*.*");
// 指定 oblogproxy 服务地址,创建实例。
LogProxyClient client = new LogProxyClient("xxx.xxx.xxx.1", 2983, config);
// 添加 RecordListener
client.addListener(new RecordListener() {
@Override
public void notify(LogMessage message){
// 处理消息
}
@Override
public void onException(LogProxyClientException e) {
// 处理错误
if (e.needStop()) {
// 不可恢复异常,需要停止 Client
client.stop();
}
}
});
// 启动
client.start();
client.join();
有关于 oblogclient 相关的信息,请参考 oblogclient。