用oblogclient抽取连接不了服务器

用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”: “”
}

看报错是连接的root_server地址端口无效 这个部署的时候机器有确认过ip吗

Oceanbase部署完后是可以用的,root_server. 这个配置是在哪里配置的,没有看到

oblogproxy

一般2882是RPC端口,2881是SQL端口,把2881/2882在config中的顺序调整下试试

1 个赞