首批通过分布式安全可靠测评,为关键业务系统打造
使用安装包安装部署 oblogproxy
更新时间:2023-08-03 17:20:32
您可以通过使用源码和下载安装包两种方式安装部署 oblogproxy。本文将介绍如何通过下载安装包的方式安装部署 oblogproxy。
oblogproxy 即 OceanBase 增量日志代理服务,是 OMS 的一部分。oblogproxy 基于 obcdc,以服务的形式提供实时增量链路接入和管理能力,方便应用接入OceanBase 增量日志。
oblogproxy 能够解决网络隔离的情况下,订阅增量日志的需求;并提供多种链路接入方式。下面介绍如何配置使用 oblogproxy。
配置 OceanBase yum 源
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
下载预编译包
您可在 下载页面 下载预编译包,oblogproxy 的包名是 "oblogproxy-xxxx.系统版本.x86_64.rpm",可根据自己的系统选取,安装:
yum install -y oblogproxy-xxxx.系统版本.x86_64.rpm
oblogproxy 将安装在目录 /usr/local/oblogproxy 下。
配置系统租户
您获得 OBServer 的 sys 租户账号和密码后,需要通过加密配置给 oblogproxy,执行以下命令即可得到账号和密码的密文:
# 这里假设账号和密码分别为:user,pswd
./logproxy -x user
# 执行后将会输出 4B9C75F64934174F4E77EE0E9A58****
./logproxy -x pswd
# 执行后将会输出 DCE2AF09D006D6A440816880B938****
把获得的账号和密码的密文分别配置到 /usr/local/oblogproxy/conf/conf.json 中的 ob_sys_username 和 ob_sys_password 字段,例如:
{
"ob_sys_username": "4B9C75F64934174F4E77EE0E9A58****",
"ob_sys_password": "DCE2AF09D006D6A440816880B938****"
}
运行
cd /usr/local/oblogproxy
bash ./run.sh start
使用 oblogclient 订阅
您可使用 oblogclient 进行 OceanBase 数据订阅,在使用之前,您需要确定自己是否安装了 Maven 依赖。
<dependency>
<groupId>com.oceanbase.logclient</groupId>
<artifactId>logproxy-client</artifactId>
<version>1.0.1</version>
</dependency>
您可参考下文编写代码:
ObReaderConfig config = new ObReaderConfig();
// 设置OceanBase root server 地址列表,格式为(可以支持多个,用';'分隔):ip1:rpc_port1:sql_port1;ip2:rpc_port2:sql_port2
config.setRsList("127.0.0.1:2882:2881;127.0.0.2:2882:2881");
// 设置用户名和密码(非系统租户)
config.setUsername("root");
config.setPassword("root");
// 设置启动位点(UNIX时间戳,单位s), 0表示从当前时间启动。
config.setStartTimestamp(0L);
// 设置订阅表白名单,格式为:tenant.db.table, '*'表示通配.
config.setTableWhiteList("sys.*.*");
// 指定oblogproxy服务地址,创建实例.
LogProxyClient client = new LogProxyClient("127.0.0.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();
更多操作请参考 使用手册。
注意事项
- oblogproxy 配置里面无需指定具体的 OceanBase 集群信息,理论上只要与所有 OBServer 网络连通,且 OceanBase 集群包含配置中的 sys 租户账号和密码,oblogproxy 能同时订阅多个 OceanBase 集群。其中,出于安全考虑,配置的 sys 租户账号和密码通常不对 oblogclient 侧的用户暴露。
- oblogproxy 本身是无状态,订阅哪个 OceanBase、哪个库表都由 oblogclient 传入,且增量链路的位点等信息也需要 oblogclient 端自行保存。断开重连后,对于 oblogproxy 来讲,相当于创建全新的链路。
- oblogproxy 消耗内存较多,强烈建议和 OBServer 分开部署。