首批通过分布式安全可靠测评,为关键业务系统打造
使用安装包安装部署 oblogproxy
更新时间:2024-04-19 09:30:55
您可以通过下载安装包和使用源码两种方式安装部署 oblogproxy。本文将介绍如何通过下载压缩包的方式安装部署 oblogproxy。
背景信息
oblogproxy 即 OceanBase 增量日志代理服务,是 OMS 的一部分。oblogproxy 基于 obcdc,以服务的形式提供实时增量链路接入和管理能力,方便应用接入 OceanBase 增量日志。
oblogproxy 能够解决网络隔离的情况下,订阅增量日志的需求,并提供多种链路接入方式。下面介绍如何配置使用 oblogproxy。
安装 oblogproxy
注意
- oblogproxy 配置里面无需指定具体的 OceanBase 集群信息,理论上只要与所有 OBServer 节点网络连通,且 OceanBase 集群包含配置中的 sys 租户账号和密码,oblogproxy 能同时订阅多个 OceanBase 集群。其中,出于安全考虑,配置的 sys 租户账号和密码通常不对 oblogclient 侧的用户暴露。
- oblogproxy 本身是无状态,订阅哪个 OceanBase、哪个库表都由 oblogclient 传入,且增量链路的位点等信息也需要 oblogclient 端自行保存。断开重连后,对于 oblogproxy 来讲,相当于创建全新的链路。
- oblogproxy 消耗内存较多,建议和 OBServer 节点分开部署,避免影响数据库性能。
下载安装 oblogproxy
您可在 oblogproxy 开源社区中下载 oblogproxy V1.1.3 版本的压缩包。
下载完成后,将压缩包解压到安装目录下,本示例以 /usr/local 为例。
通过如下命令进行解压操作:
tar -zxf oblogproxy-ce-for-4x-xxxx.tar.gz -C /usr/local
解压完成后,指定临时环境变量。
指定 logproxy 运行的路径。
export PATH=$PATH:/usr/local/oblogproxy/bin指定依赖的路径。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/oblogproxy/liboblog
配置系统租户
出于安全考虑,oblogproxy 需要配置某个用户的用户名和密码,该用户必须是 OceanBase 的 sys 租户用户才能连接。
注意
此处的用户名不应包含集群名称和租户名称。
sh run.sh config_sys sys_user sys_pwd
参数说明:
sys_user:用户名。sys_pwd:用户密码。
示例如下:
sh run.sh config_sys sys passwd
运行 oblogproxy
先进入 oblogproxy 目录
cd /usr/local/oblogproxy
再通过以下命令启动该服务:
./run.sh start
默认监听 2983 端口,修改 conf.json 中的 service_port 字段可更换监听端口。oblogproxy 的服务日志位于 logs/,LogReader(任务线程)的服务日志位于 run/{client-id}/logs/。
说明
此时可以使用 oblogclient 进行 OceanBase 数据订阅,更多信息,请参考 使用文档。
使用 oblogclient 订阅
您可使用 oblogclient 进行 OceanBase 数据订阅,在使用之前,您需要确定自己是否安装了 Maven 依赖。
<dependency>
<groupId>com.oceanbase.logclient</groupId>
<artifactId>logproxy-client</artifactId>
<version>1.0.7</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。