用LogProxyClient 客户端连接不了,程序直接结束了。
代码:
ObReaderConfig config = new ObReaderConfig();
// 设置OceanBase root server 地址列表,格式为(可以支持多个,用’;'分隔):ip1:rpc_port1:sql_port1;ip2:rpc_port2:sql_port2
config.setRsList(“10.0.10.119:2881:2882;10.0.10.118:2881:2882;10.0.10.126:2881:2882”);
// 设置用户名和密码(非系统租户)
config.setUsername(“root@dct”);
config.setPassword(“abc1234”);
// 设置启动位点(UNIX时间戳,单位s), 0表示从当前时间启动。
config.setStartTimestamp(0L);
// 设置订阅表白名单,格式为:tenant.db.table, ''表示通配.
config.setTableWhiteList("dct.test.");
// ClientConf clientConf =
// ClientConf.builder()
// .transferQueueSize(1000)
// .connectTimeoutMs(3000)
// .maxReconnectTimes(100)
// .ignoreUnknownRecordType(true)
// .clientId(“test”)
// .build();
// 指定oblogproxy服务地址,创建实例.
LogProxyClient client = new LogProxyClient("10.0.10.119", 2983, config);
client.addStatusListener(new StatusListener() {
@Override
public void notify(LogProxyProto.RuntimeStatus runtimeStatus) {
System.out.println(runtimeStatus);
}
});
// 添加 RecordListener
client.addListener(new RecordListener() {
@Override
public void notify(LogMessage message){
// 处理消息
System.out.println(message);
}
@Override
public void onException(LogProxyClientException e) {
System.out.println(e.getMessage());
// 处理错误
if (e.needStop()) {
// 不可恢复异常,需要停止Client
client.stop();
System.out.println("111");
}
}
});
// 启动
client.start();
client.join();
System.out.println("Hello world!");
在oblogproxy上查看报错日志:
E20230223 10:08:46.970350 21159 ob_access.cpp:131] Failed to init ObAccess caused by invalid root_servers:10.0.10.119:2881
E20230223 10:11:01.505407 21159 ob_access.cpp:131] Failed to init ObAccess caused by invalid root_servers:10.0.10.119:2881
E20230223 10:11:32.015419 21159 ob_access.cpp:131] Failed to init ObAccess caused by invalid root_servers:10.0.10.119:2881
E20230223 10:12:02.031443 21159 mysql_protocol.cpp:78] Failed to receive handshake packet from: 10.0.10.119:2882, error: Operation now in progress
E20230223 10:13:35.061827 21159 mysql_protocol.cpp:78] Failed to receive handshake packet from: 10.0.10.119:2882, error: Operation now in progress
配置:
{
“service_port”: 2983,
“encode_threadpool_size”: 8,
“encode_queue_size”: 20000,
“max_packet_bytes”: 67108864,
“record_queue_size”: 20000,
“read_timeout_us”: 2000000,
“read_fail_interval_us”: 1000000,
“read_wait_num”: 20000,
“send_timeout_us”: 2000000,
“send_fail_interval_us”: 1000000,
“check_quota_enable”: false,
“command_timeout_s”: 10,
“log_quota_size_mb”: 5120,
“log_quota_day”: 7,
“log_gc_interval_s”: 43200,
“oblogreader_path_retain_hour”: 168,
“oblogreader_lease_s”: 300,
“oblogreader_path”: “./run”,
“allow_all_tenant”: true,
“auth_user”: true,
“auth_use_rs”: false,
“auth_allow_sys_user”: true,
“ob_sys_username”: “ABBA96CA49F0EED052F05E19443FF8AD”,
“ob_sys_password”: “1092A152A59DDFB5860C948FE76DDB5D”,
“counter_interval_s”: 2,
“metric_enable”: true,
“metric_interval_s”: 120,
“debug”: false,
“verbose”: false,
“verbose_packet”: false,
“readonly”: false,
“count_record”: false,
“channel_type”: “plain”,
“tls_ca_cert_file”: “”,
“tls_cert_file”: “”,
“tls_key_file”: “”,
“tls_verify_peer”: true,
“liboblog_tls”: false,
“liboblog_tls_cert_path”: “”
}